笔记()

193 阅读2分钟

react是什么

是一个用于构建用户界面的js库

redux是一个专门用于状态管理的js库

作用 集中式管理react应用中多个组件共享的状态

什么情况下用到redux

1.一些组件的状态,需要让其他组件随时可以拿到(共享)
2.一个组件需要改变其他组件的状态(通信)
3.能不用就不用,不用比较吃力才考虑用

优点缺点

-   优点

    -   Redux轻量,生态丰富,可以结合流行的`redux-thunk``redux-saga`等进行使用
    -   Redux的写法比较固定,团队应用中风格比较稳定,提高协作中的可维护性
    -   因为Redux中的reducer更新时,每次return的都是不可变对象,所以时间旅行操作相对容易

-   缺点

    -   每一次的dispatch都会从根reducer到子reducer嵌套递归的执行,所以效率相对较低;
    -   Redux核心是不可变对象,在Reducer中的操作都要比较小心,注意不能修改到state的属性
    -   Redux中写法固定,模板代码较多

redux执行流程

1.store通过reducer创建初始状态
2.view通过store.getState()获取公共状态
3.view改变状态,需要调用action里面的方法,action里面被调用的方法会通过
store.dispatch()方法传递行为标识给reducer
4.reducer接收到action并根据传递过来来的行为标识来改变状态
5.store中改变的状态会被view重新获取

lazyLoad

const login=lazy(()=>{import()})

//2.通过<Suspense>指定在加载得到路由打包文件前显示一个自定义1oading界面<Suspense 
fa77back=f<h1>loading. . ...</hl>}>
<Switch>
<Route path=""/××x"" component= {X×××]/>一Redirect to=" /login""/>
</Switch>
</ Suspense>

render()和template

流程上下级关系

vue渲染过程

1.template=>
2.render()  通过render创建真实元素
3.生成虚拟dom(本质是js对象)
4.生成真实dom   

vue使用render

在别的组件引用方式和平常的组件一样
<script>
export default{
    h=>createElement()=>创建元素
  render(h){
      class:{
          btn:true,
          'btn-success':this.type==='success'
      }
      ,
      on:{
          绑定事件
      }
  }
}
</script>
<style>
...
</style>