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

帮做动态头像的网站番禺本地网站

帮做动态头像的网站,番禺本地网站,做网站需要的公司,天津 工程 信息环境搭建 我们当然可以先用脚手架搭建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://www.huolong8.cn/news/250056/

相关文章:

  • 网站seo心态纪念馆网站建设方案
  • 公司网站开发费用如何做账wordpress后台安全
  • 安阳企业建网站青岛网站关键词
  • 好网站建设公司报价化妆品推广软文
  • 政务网站建设云计算中心阿里云企业网站怎么建设
  • 网站打开后显示建设中自己录入数据做问卷的网站
  • 摄影协会网站源码网站制作费用低
  • 开源网站建设实习心得做网站多少钱_西宁君博相约
  • 单页网站模板 带在线订单做视频网站资源采集
  • 做教育的网站需要资质吗小型教育网站的开发与建设
  • 网站开发可能性分析企业网站推广的线上渠道有哪些?
  • 中国有没有一家做茶叶的网站家政网站模板下载
  • 金融集团网站模板精美的php个人网站源码
  • 网站开发交易做网站要坚持
  • 商派商城网站建设方案wordpress备份方法
  • 低代码建站网站建设优化公司哪家好
  • 柒零叁网站建设湖南长沙一个网站主页开发费用
  • 怎么将网站做成html沧州网络营销推广方案
  • 大连品牌官网建站网络规划设计师科目分类
  • 南城网站建设公司案例supercell账号注册网站
  • 网站源码在哪里珠海网站建设品牌策划
  • php做自己的网站桂林人生活论坛
  • 找网站公司企业备案大连建设监察执法网站
  • 建设部网站造价注册深圳注册公司去哪里注册
  • 软件学校网站模板下载潍坊智能建站模板
  • 广州做网站要多少钱安卓开发文档
  • 外贸行销网站东莞长安 网站建设
  • 6网站建设做网站移动网站开发公司
  • 廊坊网站关键词优化做网站公司济南
  • 才艺多网站建设平台使用网站模板快速建站