当前位置: 首页 > news >正文

番禺高端网站建设公司公司自有网站工信备案

番禺高端网站建设公司,公司自有网站工信备案,展示型网站建设流程,游戏网站上图片动态怎么做的1.概念 React和TypeScript集合使用的重点集中在 存储数据/状态有关的Hook函数以及组件接口的位置#xff0c;这些地方最需要数据类型校验 2.使用Vite创建项目 Vite是前端工具链工具#xff0c;可以帮助我们快速创建一个 reactts 的工程化环境出来 Vite官网#xff1a;ht…1.概念 React和TypeScript集合使用的重点集中在 存储数据/状态有关的Hook函数以及组件接口的位置这些地方最需要数据类型校验 2.使用Vite创建项目 Vite是前端工具链工具可以帮助我们快速创建一个 reactts 的工程化环境出来 Vite官网https://cn.vitejs.dev/ npm create vitelatest react-typescript -- --template react-ts项目名称 模版模式安装依赖运行项目 # 安装依赖 npm i # 运行项目 npm run dev3.useState——自动推导 简单场景 简单场景下可以使用TS的自动推断机制不用特殊编写类型注解运行良好 const [val, toggle] React.useState(false) // val 会被自动推断为布尔类型 // toggle 方法调用时只能传入布尔类型// react ts // 根据初始值自动推断 // 场景明确的初始值 import { useState } from react function App() {const [value, toggle] useState(false)const [list, setList] useState([1, 2, 3])const changeValue () {toggle(true)}const changeList () {setList([4])}return this is app {list}/ }export default App 4.useState——传递泛型参数 useState本身是一个泛型函数可以传入具体的自定义类型 // react ts type User {name: stringage: number } const [user, setUser] useStateUser({name: jack,age: 18,})说明 1.限制useState函数参数的初始值必须满足类型为user user 2.限制setUser函数的参数必须满足类型为 User User | underfined 3.user状态数据具备User类型相关的类型提示 // react tsimport { useState } from reacttype User {name: stringage: number }function App() {// 1. 限制初始值的类型// const [user, setUser] useStateUser({// name: jack,// age: 18,// })// const [user, setUser] useStateUser(() {// return {// name: jack,// age: 18,// }// })const [user, setUser] useStateUser({name: jack,age: 18,})const changeUser () {setUser(() ({name: john,age: 28,}))}return this is app {user.name}/ }export default App 5.useState——初始值为null 实际开发时有些时候useState的初始值可能为null或者undefined按照泛型的写法是不能通过类型校验的此时可以通过完整的类型联合null或者undefined类型即可 type User {name: Stringage: Number } const [user, setUser] React.useStateUser(null) // 上面会类型错误因为null并不能分配给User类型const [user, setUser] React.useStateUser | null(null) // 上面既可以在初始值设置为null同时满足setter函数setUser的参数可以是具体的User类型说明 1.限制useState函数参数的初始值可以是User null 2.限制setUser函数的参数类型可以是User null // react ts import { useState } from react type User {name: stringage: number } function App() {const [user, setUser] useStateUser | null(null)const changeUser () {setUser(null)setUser({name: jack,age: 18,})}// 为了类型安全 可选链做类型守卫// 只有user不为null不为空值的时候才进行点运算return this is app {user?.age}/ } export default App 5.props与ts——基础使用 为组件prop添加类型本质是给函数的参数做类型注解可以使用type对象类型或者interface接口来做注解 说明button组件只能传入名称为className的prop参数类型为string且为必填 // props ts //写法一 // type Props { // className: string // }//写法二 interface Props {className: stringtitle?: string }function Button(props: Props) {const { className } propsreturn button className{className}click me /button }function App() {return (Button classNametest titlethis is title //) }export default App 6.props与ts——为children添加类型 children是一个比较特殊的prop支持多种不同类型数据的传入需要通过一个内置的ReactNode类型来做注解 说明注解之后children可以是多种类型包括react.reactElement、string、number、react.reactFragment、react.reactPortal、boolean、null、undefined // props tstype Props {className: stringchildren: React.ReactNode }function Button(props: Props) {const { className, children } propsreturn button className{className}{children} /button }function App() {return (Button classNametestclick me!/ButtonButton classNametestspanthis is span/span/Button/) }export default App 7.props与ts——为事件prop添加类型 组件经常执行类型为函数的prop实现子传父这类prop重点在于函数参数类型的注解 说明 1.组件内部调用时需要遵守类型的约束参数传递需要满足要求 2.绑定prop时如果绑定内联函数直接可以推断出参考类型否则需要单独注解匹配的参数类型 // props tstype Props {onGetMsg?: (msg: string) void }function Son(props: Props) {const { onGetMsg } propsconst clickHandler () {onGetMsg?.(this is msg)}return button onClick{clickHandler}sendMsg/button }function App() {const getMsgHandler (msg: string) {console.log(msg)}return (Son onGetMsg{(msg) console.log(msg)} /Son onGetMsg{getMsgHandler} //) }export default App 8.useRef与TypeScript —— 获取dom 获取dom的场景可以直接把要获取的dom元素的类型当成泛型参数传递给useRef可以推导出.current属性的类型 // useRef tsimport { useEffect, useRef } from react// 1. 获取dom // 2. 稳定引用的存储器定时器管理function App() {const domRef useRefHTMLInputElement(null)const timerId useRefnumber | undefined(undefined)useEffect(() {// 可选链 前面不为空值null / undefined执行点运算// 类型守卫 防止出现空值点运算错误domRef.current?.focus()timerId.current setInterval(() {console.log(123)}, 1000)return () clearInterval(timerId.current)}, [])return (input ref{domRef} //) }export default App 8.useRef与TypeScript —— 引用稳定的存储器 把useRef当成引用稳定的存储器使用的场景可以通过泛型传入联合类型来做比如定时器的场景
http://www.pierceye.com/news/484973/

相关文章:

  • 易烊千玺个人网站入口什么是网站建设的建议
  • 哪个网站做供求信息app开发公司排行榜
  • 信誉好的广州外贸网站未来做哪些网站能致富
  • 运城推广型网站建设温州的网站建设公司
  • 怎么样做网站编程一般通过哪些行为来处理人际关系
  • 学校的网站开发过程wordpress公司展示网站
  • 贵港市建设局网站网站建设优化之优化关键字
  • 网站开发设计比较好的公司电子烟网站设计
  • 群辉 wordpress套件阜阳网站优化
  • 如何做网站哪个站推广网站自助建设平台
  • 西安大网站建设公司排名沈阳网络维护公司
  • 个人建立一个网站要多少钱乔拓云h5制作
  • 蒙阴网站建设百度指数排名
  • 视频网站如何推广做模具做什么网站
  • 关于旅游的网站建设论文广州外贸网站建设公司价格
  • 怎么给自己制作一个网站wordpress 中文摘要
  • 如何看网站的ftp服装网站建设策划书3000字
  • 无锡网站建设 网站制作常见的网站首页布局有哪几种
  • 网站研发PHP MYSQL网站开发全程实
  • 简约型网站国外做电商平台的网站还有什么
  • 云南昆明网站建设公司jsp网站开发详解下载
  • 上海h5网站开发网站建设在开封找谁做
  • 滨海建设局官方网站营销网络平台
  • 中国小康建设网是骗子网站吗?建设宁波市分行的互联网网站
  • 制造网站建设自己做游戏资讯网站
  • 网站建设质量如何衡量都江堰网站开发
  • 企业网站设计步骤中山制作网站的公司
  • 通化网站制作企信网官网查询入口
  • 无锡装修网站百科网站推广
  • 先做网站后付款怎么做网站弹窗通知