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

网站访问次数受限网站备案负责人一定要法人

网站访问次数受限,网站备案负责人一定要法人,广州seo公司排行,设计网站用什么语言环境搭建 我们当然可以先用脚手架搭建React项目#xff0c;然后手动配置成支持TypeScript的环境#xff0c;虽然比较麻烦#xff0c;但可以让你更清楚整个过程。这里比较麻烦#xff0c;就不演示了#xff0c;直接用命令配置好。 npx create-react-app appname --typescri… 环境搭建 我们当然可以先用脚手架搭建React项目然后手动配置成支持TypeScript的环境虽然比较麻烦但可以让你更清楚整个过程。这里比较麻烦就不演示了直接用命令配置好。 npx create-react-app appname --typescript 可以安装一些自己需要的库及其声明文件例如react-router-dom、axios、ant Design等。如果要安装ant design还需要在开发环境库中安装一些依赖库以帮助实现按需加载。 使用 有类型约束的函数组件 import React from react; import { Button } from antd;interface Greeting {name: string;firstName?: string;lastName?: string; }// 没有使用React.FC const HelloOld (props: Greeting) Button你好{props.name}/Button;// 使用React.FC泛型类型 const Hello: React.FCGreeting (props) {return (ButtonHello {props.name}/Button) };export { Hello, HelloOld }; 定义函数组件时使用React.FC与不使用没有太多区别没有为我们带来明显的好处建议使用常规定义方式。 有类型约束的类组件 import React,{Fragment} from react; import { Button } from antd;interface Greeting {name: string;firstName?: string;lastName?: string; } interface State {count: number }// 泛型类型第一个传入参数约束属性props第二个约束状态state(内部数据) class HelloClass extends React.ComponentGreeting, State {state: State {count: 0};static defaultProps { // 属性默认值firstName: ,lastName: ,};render() {return (Fragmentp点击了{this.state.count}次/pButton onClick{(){this.setState({count: this.state.count1})}}Hello{this.props.name}Class/Button/Fragment);} }export default HelloClass; 有类型约束的高阶组件 import React from react; import HelloClass from ./HelloClass;interface Loading {loading: boolean; }function HelloHocP(params?: any) {return functionP(WrappedComponent: React.ComponentTypeP) { // P表示被包装组件的属性的类型return class NewComponent extends React.ComponentP Loading{ // 这里使用交叉类型为新组件增加一些属性,接口Loading定义了新增的属性声明render(){return this.props.loading ? divLoading/div : WrappedComponent {...this.props as P}/}}} }export default HelloHoc()(HelloClass); 高阶组件在ts中使用会有比较多的类型问题解决这些问题通常不会很顺利而且会存在一些已知的bug这不是高阶组件本身的问题而是React声明文件还没有很好地兼容高阶组件的类型检查更好的方式是使用Hooks 有类型约束的Hooks import React, { useState, useEffect } from react; import { Button } from antd;interface Greeting {name: string;firstName?: string;lastName?: string; }const HelloHooks (props: Greeting) {const [ count, setCount ] useState(0); // 设了初值所以不用定义类型const [ text, setText ] useStatestring | null(null);useEffect((){count 5 setText(休息一下);},[count]); // 第二个参数的作用是只有当count改变的时候函数内的逻辑才会执行。return (p你点击了Hooks {count} 次 {text}/pButton onClick{(){setCount(count1)}}{props.name}/Button/); };export default HelloHooks; 事件绑定 class HelloClass extends React.ComponentGreeting, State {state: State {count: 0};clickHandle (e: React.MouseEvent) { // 事件对象e的类型使用内置的合成事件。在回调函数中e的属性都会无效e.persist(); // 将该事件从池中删除合成事件可以正常使用console.log(e);// this.setState({count: this.state.count1})};inputHandle (e: React.FormEventHTMLInputElement) {// e.persist();console.log(e.currentTarget.value); // 此时编译器报错认为没有value属性需要指定HTMLInputElement泛型类型// console.log(e.target.value); // 仍然不行};render() {return (Fragmentp点击了{this.state.count}次/pButton onClick{this.clickHandle}Hello{this.props.name}Class/Buttoninput onChange{this.inputHandle}//Fragment);} }   转载于:https://www.cnblogs.com/V587Chinese/p/11520674.html
http://wiki.neutronadmin.com/news/354501/

相关文章:

  • 连云港公司网站优化服务网站浏览路径怎么做
  • vs 网站开发 mvc上海网站建设内容更新
  • 网站建设 百度云盘青岛做网站eoe
  • wordpress制作网站模板手机wap游戏
  • 精品购物网站怎么建立一个网站让百度搜到
  • 承德市外贸网站建设怎样学网站建设
  • 做展示网站手工外发货源怎么找
  • 网站里会自动换图怎么做网站定制业务
  • vs网站模板招聘网58同城求职信息
  • 高端品牌网站建设电商网站设计科技时代
  • 搜狐快站装修网站建设优化排名
  • php做网站知乎球迷类的网站如何做
  • windows优化大师自动安装手机端关键词排名优化软件
  • 漯河网站建设服务公司利用软件做许多网站违法吗
  • 西安seo网站优化众希网站建设
  • 自适应网站建设极速建站wordpress 删除重复文章
  • 响应式网站建设价格南京华佑千家装饰工程有限公司
  • 中国建设银行官网首页 网站首页ps如何做ppt模板下载网站
  • 做自己的游戏网站做游戏课程网站
  • 帝国网站开发线上推广员是做什么的
  • wordpress除了写博客上海seo关键词优化
  • 泉港报名网站建设需要色91Av做爰网站
  • 基于php网站开发最新军事新闻最新消息
  • 煤矿网站建设网站运营分析
  • 关于建设网站的需求分析电商推广专业术语
  • 网站推广方案案例app开发源码
  • 深圳模板网站建设设计公司phpcms做双语网站
  • 海南建设工程信息网站珠海哪个网站制作公司好
  • 电商网站支付体系建设特点文创产品设计方案范本
  • 齐齐哈尔网站设计网游开发成本