React


React:
  1、ReactJS
    1.1 概述
      what?
       reactjs是在web开发中 实现ui的js库
      when?
       数据操作比较频繁的场景
      why?
        VDOM 提升浏览器的性能
        单向数据流 减少业务的复杂度、维护的成本
      how?
       方案1:
        npx create-react-app my-app
        cd my-app
        npm start
       方案2:
        引入对应的js文件
       
    1.2 完成一个组件类的创建和调用
     1.2.1 创建
      src/components/demo01

      import React,{Component} from 'react';
      
      export class Demo01Component extends Component{
       
       render(){
         return <h1>hell</h1>
       }

      }
     1.2.2 调用
      import {Demo01Component} from '**'
      <Demo01Component></Demo01Component>
     1.2.3 注意事项
      ①在组件类中 不允许直接返回多个要渲染的元素内容
      ②render的return时,第一个标签不允许直接换行
      
  2、五大核心概念
    jsx(重点):
     并不是一种新的语言,只不过是js的扩展,允许在js写标签
     ①遇到<,在js中直接调用标签
     ②遇到{,在标签内部通过{expression}执行表达式
    props:
      知识点1:实现父与子的通信
       <son myTitle='123'></son>
       this.props.myTitle
      知识点2:调用子标记元素
        this.props.children 指的是在调用标签时,标签内部所写的字标记
        React.Children.map(
          this.props.children,
          (value)=>{
            return value
          }
          )
      知识点3:实现子与父的通信
        步骤1:在父组件定义一个有参数的方法
        步骤2:将方法传递给子组件
        步骤3:子组件调用该方法,同时传参
    component:
      React的核心思想就是:组件的封装和复用
    ref:
      得到子组件的实例对象,进而主动获取子组件的数据和方法进行一些操作
      步骤1:
        <son ref='mySon'></son>
      步骤2:
        this.refs.mySon.**
    state(重点):
      ①管理数据
        //初始化
        this.state = {count:1}
        //读
        this.state.count
        //写
        this.setState({count:2})
      ②实现一个绑定的效果
        (将状态中的数据和视图结合在一起,当状态发生变化,视图就会跟着进行更新)
       <any>{this.state.count}</any>
       <h1 style={{opacity:this.state.**}}></h1>
  3、生命周期
    React中组件有着自己的生命周期
     mount (初始化)
      componentWillMount
      componentDidMount
     update (状态或者属性传来的值数据变化时,做逻辑判断和处理)
      componentWillUpdate
      componentDidUpdate
      componentWillReceiveProps
     unmount (组件销毁时,执行清理工作)
      componentWillUnmount
  4、进阶知识(重点)
    4.1 实现循环(v-for/*ngFor)
      通过遍历要循环的集合,动态的返回要显示的元素或者组件
      {
        this.state.list.map((value,index)=>{
            return <li key={index}>{value}</li>
        })
      }
    
    4.2 实现条件判断(v-if/*ngIf)
      短路逻辑(与运算)
      {
        expression
        &&
        <Any></Any>
      }
      表达式执行结果为真,显示;否则就是不显示
    4.3 处理受控表单元素
      在reactjs中的表单元素指定了value/checked/selected等相关的属性,表单元素操作的结果会发现和预期的不一致,就称作为受控表单元素

      解决方案:借助于状态绑定的效果来解决受控问题
       步骤1:初始化状态
        state = {myValue:'123'}
       步骤2:将状态绑定到value属性
         <input value={this.state.myValue}/>
       步骤3:在事件处理函数中 完成状态的写操作
         handleChange(e)=>{
           this.setState({myValue:e.target.value})
         }

         <input 
         onChange={this.handleChange}
         value={this.state.myValue}/>

    
      

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值