zoukankan      html  css  js  c++  java
  • (一)Reac入门

    一:入门

    1:chrome如何安装React dev Tools

    https://blog.csdn.net/gezilan/article/details/79741578  React工具的安装

    2:Hello React

        const vDom = <h1>Hello React</h1> // 千万不要加引号

        // 渲染虚拟DOM到页面真实DOM容器中

    ReactDOM.render(vDom, document.getElementById('test'))                                                 

    3: 

    1. 创建虚拟DOM

        /*方式一: 纯JS(一般不用)创建虚拟DOM元素对象*/

        const msg = 'I Like You!'

        const myId = test

     

        const vDOM1 = React.createElement('h2', {id: myId}, msg.toUpperCase())

        // 2. 渲染到真实页面

        const domContainer = document.getElementById('test1')

        // debugger

    ReactDOM.render(vDOM1, domContainer)          

     

    // 1. 创建虚拟DOM

        /*方式二: JSX创建虚拟DOM元素对象*/

        const vDOM2 = <h3 id={myId.toUpperCase()}>{msg.toLowerCase()}</h3>

        // debugger

        // 2. 渲染到真实页面

        ReactDOM.render(vDOM2, document.getElementById('test2'))

     

    4:组件化编程

     /*方式1: 工厂函数组件(简单组件)*/

    function MyComponent () {

      return <h2>工厂函数组件(简单组件)</h2>

    }

     

    /*方式2:  ES6类组件(复杂组件)*/

    class MyComponent2 extends React.Component {

      render () {

        console.log(this) // MyComponent2的实例对象

        return <h2>ES6类组件(复杂组件)</h2>

      }

     

    二:组件的三大属性

     

    1: state属性

    一:概念理解

    (1)    state是组件对象最重要的属性, 值是对象(可以包含多个数据)

    (2)    组件被称为"状态机", 通过更新组件的state来更新对应的页面显示(重新渲染组件)

     

    二.编码操作

    (1)    初始化状态:

      constructor (props) {

        super(props)

        this.state = {

          stateProp1 : value1,

          stateProp2 : value2

        }

      }

    (2)    读取某个状态值

      this.state.statePropertyName

    (3)    更新状态---->组件界面更新

      this.setState({

        stateProp1 : value1,

        stateProp2 : value2

      })

       class Like extends React.Component{
           constructor(props){
               super(props)
               this.state = {
                   isLikeMe : false
               }
               this.Change = this.Change.bind(this)
           }
    
           Change(){
               //点击的时候执行这个方法
               //设置状态数值
               const isLikeMe = !this.state.isLikeMe
               this.setState({
                   isLikeMe
               })
           }
    
           render(){
             //执行渲染
    
            return <h2 onClick={this.Change}>{this.state.isLikeMe?"我喜欢你":"我不喜欢你"}</h2>
           }
       }
       //渲染组件
      ReactDOM.render(<Like/>,document.getElementById("example"))
    

      

    2: props属性

    (1)    每个组件对象都会有props(properties的简写)属性

    (2)    组件标签的所有属性都保存在props中

    2 作用

    (1)    通过标签属性从组件外向组件内传递变化的数据

    (2)    注意: 组件内部不要修改props数据

     

    class Person extends React.Component{
    
       render(){
           return (
               <ul>
                   <li>name:{this.props.name}</li>
                   <li>age:{this.props.age}</li>
                   <li>sex:{this.props.sex}</li>
               </ul>
           )
       }
    
     }
    const p1 = {
         name : "小名",
         age : 20,
         sex : "男"
    }
    
     Person.propTypes = {
         name:PropTypes.string.isRequired,
         age:PropTypes.number.isRequired,
         sex:PropTypes.string.isRequired
     }
     Person.defaultProps = {
         name: 'Stranger',
         age : 20,
         sex : "男"
     };
    
     ReactDOM.render(<Person {...p1}/>,document.getElementById("example1"))
     ReactDOM.render(<Person />,document.getElementById("example2"))
    

      

    问题: 请区别一下组件的props和state属性

    1)         state: 组件自身内部可变化的数据

    2)        props: 从组件外部向组件内部传递数据, 组件内部只读不修改

    3: refs与事件处理

     

    class Mycompent extends React.Component{
    
        constructor(props){
           super(props)
           this.Showinput = this.Showinput.bind(this)
            this.HandleBlur = this.HandleBlur.bind(this)
        }
    
       Showinput(){
            //点击的时候弹出 content数值
            const input = this.refs.content; //获取到input元素//类似于dom的标识
            alert(input.value)
        }
    
        HandleBlur(event){
              //event.target表示触发的这个元素
            alert(event.target.value)
        }
    
        render(){
            return (
               <div>
                   <input ref="content" type="text"/>  
                   <button onClick={this.Showinput}>点我</button>  
                   <input type="text" placeholder="失去焦点" onBlur={this.HandleBlur}/>
               </div>
            )
        }
    }
    
    ReactDOM.render(<Mycompent/>,document.getElementById("example"));
    

      

  • 相关阅读:
    爬虫大作业
    熟悉常用的HDFS操作
    数据结构化和保存
    爬取全部校园新闻
    爬取校园新闻
    Google布隆过滤器
    谷歌json和对象转换
    postgresql和postgis
    json和实体类互相转换
    Linux安装docker-compose
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/10207338.html
Copyright © 2011-2022 走看看