当前位置: 首页 > news >正文

vuex 学习笔记 01

以下针对 vuex 1.x 及 某些0.x 版本

官方文档有个非常简单的 tutorial, 我这里在精简一下,代码大概如下:

html

<h3>Count is {{ counterValue }}</h3>
<div>
  <button @click="increment">Increment +1</button>
  <button @click="decrement">Decrement -1</button>
</div>

js

new Vue({
  el: 'body',
  store: new Vuex.Store({
    state: {
      count: 0
    },
    mutations: {
      INCREMENT: function(state, amount) {
        state.count = state.count + amount
      },
      DECREMENT: function(state, amount) {
        state.count = state.count - amount
      }
    }
  }),
  vuex: {
    getters: {
      counterValue: function(state) {
        return state.count
      }
    },
    actions: {
      increment: function({ dispatch, state }){
        dispatch('INCREMENT', 1)
      },
      decrement: function({ dispatch, state }){
        dispatch('DECREMENT', 1)
      }
    }    
  }
})

预览
http://jsbin.com/cofupo/edit?...

如果上面代码不用 vuex 实现的话会非常简单,html 代码不变,js 更新如下:

new Vue({
  el: 'body',
  data: {
    counterValue: 0
  },
  methods: {
    increment: function(){
      this.counterValue = this.counterValue + 1;
    },
    decrement: function(){
      this.counterValue = this.counterValue - 1;
    },    
  }
})

通过上面的代码对比, vuex 把应用的数据和修改数据的方法放在了一个 store 对象里面统一管理, 对数据的获取和操作则分别通过 vm 新增建的配置属性 vuex 的 getters 和 actions 来进行。

相关文章:

  • Eclipse中web项目的默认发布路径改为外部Tomcat中webapp路径
  • 【NOIP】提高组2013 货车运输
  • AngularJS 用 Interceptors 来统一处理 HTTP 请求和响应
  • Ubuntu16.04 安装wine下的QQ
  • 1-2 ARM概况
  • 大数据美食——寻找地图上的美味
  • 使用python+hadoop-streaming编写hadoop处理程序
  • php ci框架整合银盛支付
  • SQL Server编程(06)触发器
  • 关于写东西
  • 1164 统计数字
  • 大神的Blog挂了,从Bing快照里复制过来的备份
  • linux内核值shmmax问题
  • 一行神奇的javascript代码
  • Mybatis初体验
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Docker: 容器互访的三种方式
  • express如何解决request entity too large问题
  • go append函数以及写入
  • java8 Stream Pipelines 浅析
  • Javascript设计模式学习之Observer(观察者)模式
  • JavaScript学习总结——原型
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • pdf文件如何在线转换为jpg图片
  • Python socket服务器端、客户端传送信息
  • underscore源码剖析之整体架构
  • Vue2.x学习三:事件处理生命周期钩子
  • 复杂数据处理
  • 高性能JavaScript阅读简记(三)
  • 记一次用 NodeJs 实现模拟登录的思路
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 突破自己的技术思维
  • 物联网链路协议
  • 转载:[译] 内容加速黑科技趣谈
  • ​2020 年大前端技术趋势解读
  • ​iOS实时查看App运行日志
  • $L^p$ 调和函数恒为零
  • (007)XHTML文档之标题——h1~h6
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (汇总)os模块以及shutil模块对文件的操作
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (七)理解angular中的module和injector,即依赖注入
  • (转载)Linux 多线程条件变量同步
  • .gitignore文件忽略的内容不生效问题解决
  • .NET Core 项目指定SDK版本
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET 某和OA办公系统全局绕过漏洞分析