zoukankan      html  css  js  c++  java
  • React学习

    https://www.bilibili.com/video/BV1Et41137Sb?p=36&spm_id_from=pageDriver

    React 替代dom操作,更新数据就行
    jqery只是简化语法
    组件化
    单向数据流
    react为啥高效:  1. 虚拟dom 2.dom diff算法
    啥是虚拟dom? 不总是直接操作dom, 最后一起操作dom
     
    react  JSX是啥-->   js + xml;   xml可以自定义标签名——>组件标签, 标签名,属性是可以自定义的—>类似自定义component,小程序
    Babel 库:  将jsx---> js
    虚拟dom  轻量级, 真实的dom 重量级,很重
    虚拟dom更新后不会重绘; 真实Dom 会重绘
    debugger  前端断点
     
    如何将数组数据转换成标签数组? 使用数组的map()
     
     
    组件
    react  面向组件编程   组件标签———html标签;  为了区分html标签, 组件标签都要大写; html标签小写
    ES6省代码; 语法糖,简洁语法
    组件内调用新增函数,需要bind 
    Component  里面的函数要绑定,才能在标签里面被调用
    this.handleClick = this.handleClick.bind(this)
    组件 setState 感觉类似小程序的setData
     
    组件两种创建方式: 
    1.  函数方式。 性能好,但是不能有状态,适用于简单的组件
    2.component方式。 性能差,可以有状态,适用于复杂组件
     
     
    默认属性值:
    defultProps:
     
    …的作用:
    1. 打包  function myFunc(…parm);   调用  myFunc(1,2,3),  这里parm就是数组【1,2,3】
    2. 解包, 可以解包数组,也可以解包字典对象
     
     
    组件的三大属性:
    1. state, 本地变量属性
    2. props,  外界入参。除了是基本数据类型,也可以是函数
    3. Refs:  标识组件内的元素,类似id
     前两条小程序组件也有
     
     
    组件化开发的两个问题:
    1. 数据保存在哪个组件内? 答:如果组件自己用,那就在组件内; 如果多个组件都要用,那就在父组件上保存数据
    2. 如何在子组件内改变父组件的状态? 父组件内定义并实现改变数据的函数a, 子组件定义属性包含函数a, 子组件调用函数a修改父组件的状态。 注意:子组件不能直接改变父组件的状态
     
    组件化编写的流程:
    1. 拆分页面成组件
    2. 实现静态组件
    3. 实现动态组件  a. 实现初始化数据动态显示  b.实现交互功能
     
    受控组件VS非受控组件   受控组件,代码量比较大,程序员手动处理响应事件
     
    react 思想: 尽量少操作DOM, 使用受控组件比较好
     
    定时器,内存泄漏,在合适的时候释放定时器
     
    命名式编程        VS     声明式编程
    Jqery(往组件内插入标签)    VS   React
     
    重要的钩子: 生命周期函数
    1. render 初始化渲染,或者更新渲染调用
    2. ComponentDidMount  初始化定时器, 或者网络请求
    3. ComponentWillUnmount  清理定时器
    4. ComponentWillReceiveProps()  接收到新值的时候调用
     
    回调,写箭头函数是比较好的选择, 可以不用写bind了
     
    React 的style 写法:  {{display:’none’}}   注意none带引号,否则是取变量了
     
    组件内如果不想绑定自定义方法,可以写箭头函数
     
    组件间通信:
    方式1, 使用props, 传递数据, 或者函数
    方式2, 使用通知, 跟ios一样
     
     
    路由链接(不发请求) VS 非路由链接(发送请求 a标签)
     
     
    debugger  前端断点
     
     
    TODO:
    1. ES6语法!!!!学习, 
    2. TS学习
    3. form表单是啥
    4. target 与currentTarget
    5. settimeOut  与 setInterval
     
    如何阻止事件的默认行为  event.preventDefault()
     
    箭头函数,表示后面的就是返回值; 如果箭头后面带了大括号,大括号里面要写return 
  • 相关阅读:
    剑指 Offer——13. 调整数组顺序使奇数位于偶数前面
    剑指 Offer——3. 从尾到头打印链表
    剑指 Offer——2. 替换空格
    剑指 Offer——1. 二维数组中的查找
    LeetCode 905. Sort Array By Parity 按奇偶校验排列数组
    LeetCode 448. Find All Numbers Disappeared in an Array找到所有数组中消失的元素
    SSH 代码笔记
    anaconda3安装caffe
    opencv多版本安装
    人脸文章与数据库
  • 原文地址:https://www.cnblogs.com/tufei7/p/15753757.html
Copyright © 2011-2022 走看看