zoukankan      html  css  js  c++  java
  • vuex之单向数据流

    单向数据流

    State

    State 用来存状态。在根实例中注册了store 后,用 this.$store.state 来访问。

    Getters

    Getters 从 state 上派生出来的状态。可以理解为基于 State 的计算属性。很多时候,不需要 Getters,直接用 State 即可。

    Mutations

    Mutations 用来改变状态。需要注意的是,Mutations 里的修改状态的操作必须是同步的。在根实例中注册了 store 后, 可以用 this.$store.commit('xxx', data) 来通知 Mutations 来改状态。

    Actions

    Actions 通过调用 Mutations 来改状态。Actions 可以包含异步操作。在根实例中注册了 store 后, 可以用 this.$store.dispatch('xxx', data) 来存触发 Action。

    Vuex 的完整流程

    组件中触发 Action,Action 提交 Mutations,Mutations 修改 State。 组件根据 State 或 Getters 来渲染页面。具体如下图:

    vuex解决了:
    1.多个组件共享状态时,单向数据流的简洁性很容易被破坏:
    2.多个视图依赖于同一状态。
    3.来自不同视图的行为需要变更同一状态。
    vuex使用场景:
    中大型单页应用,考虑如何更好地在组件外部管理状态,简单应用不建议使用。

    向数据流

    双向数据绑定,带来双向数据流。数据(state)和视图(View)之间的双向绑定。

    ng 里的 ng-model 和 vue 里的 v-model。
    

    说到底就是 (value 的单向绑定 + onChange 事件侦听)的一个语法糖,你如果不想用 v-model,像 React 那样处理也是完全可以的。

     特点:
    无论数据改变,或是用户操作,都能带来互相的变动,自动更新。

    使用场景:

    需要实时反应用户输入的场合,适用于项目细节,如:UI控件中(通常是类表单操作)。

     
  • 相关阅读:
    转:浅谈图片服务器的架构演进
    转:Spring AOP详解
    转:Spring AOP 注解方式实现的一些“坑”
    spring AOP自定义注解方式实现日志管理
    spring的普通类中如何取session和request对像
    spring session
    转:通过Spring Session实现新一代的Session管理
    转:一个Restful Api的访问控制方法(简单版)
    Python : 什么是*args和**kwargs[转载]
    tornado项目注意点
  • 原文地址:https://www.cnblogs.com/embrace-ly/p/10574394.html
Copyright © 2011-2022 走看看