我的网站开发技术经验总结 我的网站开发技术经验总结
首页

fangdown

我的网站开发技术经验总结
首页
  • 大前端

    • nodejs

    • git

    • CI

    • 小程序

    • docker

    • Typescript

      • 说说Typescript中命名空间和模块的区别
      • 说说Typescript中的数据类型有哪些
      • 说说什么时候使用枚举类型
      • 说说如何在React项目中使用Typescirpt
        • 是什么
        • 怎么用
          • 无状态组件
          • 有状态组件
          • hooks 组件
        • 事件
      • 说说如何在Vue项目中使用Typescirpt
      • 说说对Typescript中函数的理解
      • 说说对Typescript中接口interface的理解
      • 说说对Typescript中泛型的理解
      • 说说对Typescript中类的理解
      • 说说对Typescript中高级类型的理解
      • 说说对Typescript的理解
    • webpack

    • 安全

  • 基础

  • 框架

  • 情商

  • 算法

  • 网络

  • 千锤百炼
  • 大前端
  • Typescript
fangdown
2021-09-15
目录

说说如何在React项目中使用Typescirpt

# 是什么

现在都是基于框架(vue,react)开发, 所以 ts 在框架中是如何实际应用的呢

  • 依赖

npm i @types/react -s

npm i @types/react-dom -s

# 怎么用

import * as React from "react";
export const Logo = (props) => {
  const { logo, className, alt } = props;
  return <img src={logo} className={className} alt={alt} />;
};

# 无状态组件

interface IProps {
  logo: string;
  className: string;
  alt: string;
}
import * as React from "react";
export const Logo = (props: IProps) => {
  const { logo, className, alt } = props;
  return <img src={logo} className={className} alt={alt} />;
};

# 有状态组件

import * as React from 'react'

interface IProps {
  color: string,
  size?: string,
}
interface IState {
  count: number,
}
class App extends React.Component<IProps, IState> {
  public state = {
    count: 1,
  }
  public render () {
    return (
      <div>Hello world</div>
    )
  }
}

# hooks 组件

import React, { useEffect, useState } from 'react';
interface IProps {
  logo: string;
  className: string;
  alt: string;
}
export const Logo = (props:IProps) => {
  const { logo, className, alt } = props;
  const [loading, setLoading] = useState(true)
  useEffect(()=>{
    if(logo){
      setLoading(false)
    }
  }, [logo])
  if(loading) return 'loading...'
  return <img src={logo} className={className} alt={alt} />;
};

# 事件

常用Event 事件对象类型:

private updateValue(e: React.ChangeEvent<HTMLInputElement>) {
  this.setState({ itemText: e.target.value })
}
ClipboardEvent<T = Element> 剪贴板事件对象
DragEvent<T = Element> 拖拽事件对象
ChangeEvent<T = Element>  Change 事件对象
KeyboardEvent<T = Element> 键盘事件对象
MouseEvent<T = Element> 鼠标事件对象
TouchEvent<T = Element>  触摸事件对象
WheelEvent<T = Element> 滚轮事件对象
AnimationEvent<T = Element> 动画事件对象
TransitionEvent<T = Element> 过渡事件对象
#ts
上次更新: 2021/12/19, 18:05:42
说说什么时候使用枚举类型
说说如何在Vue项目中使用Typescirpt

← 说说什么时候使用枚举类型 说说如何在Vue项目中使用Typescirpt→

最近更新
01
多分支修复撞车的问题
05-01
02
如何成为架构师
01-23
03
服务器部署全过程
11-23
更多文章>
Theme by Vdoing | Copyright © 2019-2026 fangdown | 粤ICP备19079809号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式