zoukankan      html  css  js  c++  java
  • react-笔记(2)

    1、react的引入
         react的语法
         import React from "react";
       reactDOM渲染的时候需要用到ReactDOM
       import ReactDom from "react-dom";
     

    2、map遍历循环( 类vue的v-for )
        let Dom = (
            arr.map((item,index)=>{
                return <li key={index} className="list">{item}</li>
            })
        )
     

    3、元素是否显示隐藏(类vue的v-if v-show v-htm v-text
        let Dom = <h2 style={{display:false?"block":"none"}}>{false?names:message}</h2>
     

    4、属性绑定(类vue的v-bind)
        let Dom = <h2 title={title}>{title}</h2>
     

    5、class名
        className
     

    6、for
        htmlFor 多用于label
     

    7、render函数
        参数1:需要渲染的组件或者DOM结构
         参数2:将渲染的虚拟DOM放在那个标签内部
         参数3:回调函数
         eg:
            ReactDom.render(
                Dom,
                document.querySelector("#root"),
                ()=>{
                    console.log("渲染成功")
                }
            )
     

    8、需要安装:
            cnpm install react react-dom --save-dev
     

    9、组件规则
        1)组件可以用单标签 双标签
            <App/>
            <App></App>
        2)react严格规定 组件名称必须大写
        3)区分组件和ELEMENT的区别
     

    10、如何定义组件
        export default class App extends Component{
                render(){
                    里面必须要有render函数,必须返回一个jsx语法
                )
            }
        }
     

    11、react中如何对数据进修改?
            this.setState({
                key:value
                1)key是需要修改的属性
                2) value是需要修改成的值
            })
     

    12、组件
    import React,{Component,Fragment} from "react";
     
    //定义组件,继承组件父类,
    export default class App extends Component{
        constructor(){
            //初始化生命周期函数
            //必须要写super()
            super()
            //当前组件的状态
            this.state={
                message:'1815'
            }
        }
        // 里面必须要写一个函数render
        render(){
            let {message}=this.state;//解构赋值
            //必须返回一个jsx语法
            return (
                //this指向实例化对象,本对象App
                //里面的this 指向App
                <Fragment>
                    <h2 onClick={this.handleClick.bind(this)}>{message}</h2>
                    {/* <h2>App1</h2> */}
                </Fragment>
            )
        }
        handleClick(e){
            console.log(this)//undefine(指向的一个虚拟dom)
            // alert(1)
            // console.log(e)
            // this.state.message="1234"//在react修改数据不予许这么做
     
            this.setState({
                message:"111"
            })
        }
    }
    //Fragment不会被渲染到页面上,可以当作无用标签去使用
     
    /*
    render()
        render用来渲染虚拟dom,当第一次渲染完毕以后,会将渲染的结果保存在缓存当中,当数据发生改变的时候
        render会进行第二次渲染,会将缓存的数据拿出和现在的数据进行对比,改变需要改变的虚拟dom,
        而不是将所有虚拟dom重新渲染
     
    constructor()
        初始化函数 生命周期
        super()继承(必须写,否则报错)
        定义当前组件的状态(属性)
    */
     
     
  • 相关阅读:
    Java基础学习——异常机制与集合的结合练习
    公司标签
    【JS语法糖】常见的几种JS语法糖
    webstorm批量替换
    webstorm 全局搜索快捷键_IntelliJ 的搜索和全局搜索怎么用
    存放缓存的三种方式 Redis、Memcache和MongoDB的区别
    Airtest学习(二)Airtest-Selenium 点击 断言 生成报告
    使用git克隆指定分支的代码
    nodejs v16.x 或更高版本不支持 Fibers
    使用 nvm 管理多个版本的 nodejs 和 npm,nvm的命令合集
  • 原文地址:https://www.cnblogs.com/liuqinq/p/10017126.html
Copyright © 2011-2022 走看看