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 
  • 相关阅读:
    迁移到MSYS2 与 Qt 工具链注意的几个事情(g++在链接时,符号依赖项查找遵循从左至右的顺序,但qmake会自动合并造成错误。使用脚本给Mingw32-make创造出一个局部的VC编译环境)
    MSYS2 瘦身小攻略(使用junction)
    Boost.Http
    MySQL中临时表的基本创建与使用教程(CREATETEMPORARY TABLE)
    Javascript设计模式
    CORS
    axure & Markman
    JSON序列化那点事儿
    软件开发生涯
    CoffeeScript NgComponent
  • 原文地址:https://www.cnblogs.com/tufei7/p/15753757.html
Copyright © 2011-2022 走看看