React核心语法

项目搭建,方法一,在项目中引入React核心文件。方法二,使用脚手架进行创建,在终端输入npx create-react-app 项目名,cd到项目文件后使用npm start启动项目

tsx基本语法

tsx
123456789101112131415161718192021222324252627
import './App.css'
function App(){
    let a = "1"
    const fn = () => {...}
    const fn2 = (num) => {...}
    const fn2 = <T,>(num:T) => {...}//如果想要支持泛型函数需要在类型后面加一个逗号,这样就不会理解为html标签
    const cls = "text"
    const styles = {color:"red"}
    let html = `<seciton><div>我是div</div></seciton>`
              let arr = [1, 2, 3, 4]
    return(
    <>
        <div>{a}</div> //插值格式只需一个花括号
        <div onClick={fn}></div>//事件绑定使用小驼峰
        <div onClick={() => {fn2(123)}}></div>//如果需要传参使用高阶函数
        <div id={id}></div> //绑定id
        <div className={cls}></div> //绑定class
        <div className={`${cls} aaa ccc bbb`}></div> //绑定多个class
        <div style={styles}></div> //绑定style
        <div dangerouslySetInnerHTML={{__html: html}}></div> //添加html代码片段,注意标签中不能有内容
        <div>{arr.map(v => {
                return <div key={v.id}>{v}</div>
            })}</div> //遍历数组
    </>
    )
}
export default App

useState

javascript
123456789101112131415161718192021222324252627282930
import { useState } from "react"
function App(){
    //constent是本次渲染的数据内容,setConstent是用来修改状态的函数
    const [constent,setConstent] = useState('默认内容')
    function handleClick (){
        setConstent('修改内容')
    }
    const [data,setData] = useState({
        title: '默认标题',
        content: '默认内容'
    })
    function handleClick (){
        setConstent('修改内容')
    }
    function handleClick1 (){
        //由于这个函数的逻辑是直接替换状态,所以要重新写一个对象,数组同理
        setConstent({
            ...data,
            content: '新内容'
        })
    }
    return(
    	<>
        	<div>{constent}</div>
        	<button onClick={handleClick}>按钮</button>
			<div>{data.content}</div>
        	<button onClick={handleClick1}>按钮</button>
        </>
    )
}