一、Vite React+ts基础写法

文章目录


安装

npm create vite@latest

执行后选择react ts

useState

使用ts写法 type声明数据格式

ts 复制代码
import { useState } from 'react'
import './App.css'
type User = {
  a: string
}
function App() {
  const [count, setCount] = useState<User | null>(null)
  const b = () => {
    setCount(null)
    setCount({ a: "asd" })
  }
  return (
    <>
      {/* count?.a 排除ts null报错,显示页面 */}
      <button onClick={b}>{count?.a}</button>
    </>
  )
}

export default App

props 传参

数据传参,标签嵌套传参

ts 复制代码
import './App.css'
type Props ={
  className? :string
  children?:React.ReactNode
}
function Button(props:Props) {
  const {className,children} =props
  console.log(children);
  
  return (
  <>
    <button className={className}>{children}</button>
  </>
  )
}

function App() {
  return (
    <>
    <Button className="text"></Button>
    <Button>
      <span>asds</span>
    </Button>
    </>
  )
}

export default App

函数传参

ts 复制代码
import './App.css'
type Props = {
  onGetMsg:(msg:string)=>void
}
function Button(props: Props) {
  const {onGetMsg} =props
  return (
    <>
      <button onClick={()=>{onGetMsg('ASD')}}>BTUU</button>
    </>
  )
}

function App() {
  const getMsgHandler = (msg:string)=>{
    console.log(msg);
    
  }
  return (
    <>
      <Button onGetMsg={getMsgHandler}></Button>
      
    </>
  )
}

export default App

useRef useEffect 获取dom 副作用hooks

获取DOM

定时器设置

ts 复制代码
import { useEffect, useRef } from 'react'
import './App.css'

function App() {
  // 获取dom元素
  const a = useRef<HTMLInputElement>(null)
  //  useRef配合定时 延迟器使用,离开关闭
  const b = useRef<number | undefined>(undefined)
  useEffect(() => {
    //  聚焦
    a.current?.focus()
    b.current = setInterval(() => {
      console.log('123');
    }, 2000)
    return () => clearInterval(b.current)
  }, [])
  return (
    <>
      <input type="text" ref={a} />
    </>
  )
}

export default App
相关推荐
LeeAt8 分钟前
从Promise到async/await的逻辑演进
前端·javascript
却黑9734 分钟前
使用react-dnd实现 antd 多级树状表格拖拽排序功能
前端·react.js
前端Hardy35 分钟前
HTML&CSS:3D 轮播图全攻略
前端·javascript
前端Hardy35 分钟前
7 个技巧助你写出优雅高效的 JavaScript 异步代码
前端·javascript·面试
走向终结的前端2 小时前
vue中再搞一下SSE的使用
前端·javascript
等一个晴天丶2 小时前
JS实现数组去重(重复的元素只保留一个)
javascript
itslife2 小时前
提交 Fiber 树
前端·react.js
用户405594802502 小时前
从防抖函数中得到的简单几点记录
javascript
独立开阀者_FwtCoder2 小时前
Nginx 部署负载均衡服务全解析
前端·javascript·后端
wordbaby2 小时前
React Router 中调用 Actions 的三种方式详解
前端·react.js