react

作者: 波仔_4867 | 来源:发表于2021-04-19 22:35 被阅读0次

react的jsx语法和定义组件

安装运行

安装

    npx create-react-app 项目名称

进入目录

    cd 项目名称

启动项目

    npm start

JSX语法的注意事项

  1. 组件中只有一个根元素
  2. 可以用Fragment做包裹元素,它不会被渲染为一个真实节点
  3. 标签在js中直接写,不用做为字符串加"",js语法的部分要在{}中定义
  4. class属性用className替代, label标签的for属性用htmlFor替代
  5. jsx中不能用if语句,用三元运算来替代
  6. const str = "<em>111</em>"
//直接渲染,不解析标签   
<p>{str}</p>
// 解析标签
<p dangerouslySetInnerHTML={{__html: str}}></p>
  1. 获取标签上的自定义属性,用e.target.dataset.index获取
    e.target 获取dom
<div data-index="3">
  1. JSX会自动解析数组,渲染数组中的每个元素值
const list = ['a','b']
...
    list.map((item,index) => {
        return <li key={index}>{item}</li>
    })
//react核心模块用来解析JSX语法
import React, { Fragment} from 'react

...
// 定义函数组件
function 组件名(){
    return (
        <Fragment>
            <div className={ 6 > 3 ? 'red': 'blue'}>
            </div>
        </Fragment>
    )
}

定义类组件(有状态组件)

组件名要大写(首字母大写)

    import React, {Component} from 'react'
    
    class 组件名 extends Component{
        constructor(){
            super()
            this.state = {
                inputValue: '',
                list: []
            }
        }
        //自定义的方法
        handlerChange(){}
        handerClick(){}

        //render函数
        render(){
            return (
                <div></div>
            )
        }

    }

组件中的数据绑定和事件绑定

render (){
    return (
        <div>
            <input type="text" value={this.state.inputValue}>
        </div>
    )
}

改变数据

    this.setState({
        list: 新值
    })

事件绑定

onChange={this.handlerChange.bind(this)}   表单发生变化时执行   bind是改变this指向
onClick={this.getdata}    点击事件
onKeyUp={this.handlerKeyUp}   键盘事件  e.keyCode === 13 回车键触发
 {/* 既传事件对象,又传其它的值 */}
 <button onClick={(e)=>{this.handlerDel(e,index)}}>删除</button>
注意:{this.handlerDel(e,index)}加括号表示直接调用 所以外部再用箭头函数,封装成一个函数

 //用箭头函数来获取正确的this
    handlerKeyUp = (e)=>{
       if (e.keyCode === 13){
           let list = this.state.list;
            this.setState({
                list: [...list,this.state.inputValue],
                inputValue: ''
            })
       }
    }

 keyup=(e)=>{    
        if(e.keyCode===13){    回车键触发
            let list=this.state.list
            list.push(this.state.values)   
            this.setState({
                // list: [...list,this.state.inputValue],     展开运算赋
                 list:list,
                values:''
            })
            console.log(this.state.list);
        }
    }

   del(e,index){
        console.log(e,index);
        let list=this.state.list
        list.splice(index,1)        数组方法 第一个参数根据索引删除,第二个是删除几位
        this.setState({
            list
        })
    }

相关文章

  • React基础

    react 教程 react 组件介绍 react state 介绍 react Props 介绍 React:组...

  • 学习react no.1

    学习react no.1 react 定义 react 特点 react

  • React Native 学习之路

    React 相关资料 React Components React Properties React State ...

  • React基础

    React包含react元素和react组件 react元素 react组件 react组件分为函数组件和类组件 ...

  • React面试题 整理脑图

    react基础 React生命周期 react-router react进阶 react Hooks redux 其他

  • react 导入中的 as

    import React from 'react'只导入 是 React。 而import * as React ...

  • ES5与ES6小结部分

    1var React=require('react'); 等价 import React from ' react...

  • React DnD基础概念和整体架构

    React DnD 的英文是 Drag and Drop for React。React DnD 是 React ...

  • React

    React 《React 官网文档》 React简介 React概念 React官网学习实践 - jSX简介 Re...

  • React学习笔记_01

    React 基础组件 react概述 npm i react react-dom react包 是核心,提供创建元...

网友评论

      本文标题:react

      本文链接:https://www.haomeiwen.com/subject/txailltx.html