简单的vuex 的使用案例笔记


Posted in Javascript onApril 13, 2018

1、 npm install vuex

2、 在src 下 新建文件夹 store (为什么是这个单词,vuex 是用来状态管理的,用储存一些组件的状态,取存贮,仓库之意),store 文件下 新建文件 index.js  (为什么是index.js? 在导入的时候,会第一选择这个叫index的文件)

3、 index.js import 导入 vue 和vuex (import 是es6 的语法, es5 是 require), 代码如下:

  这里的demo 是一个 改变 app 的模式 的一个appellation ,选择是 夜间模式还是白天模式

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
 state: {
 night: true,
 text: '白天',
 className: 'morning'
 },
 mutations: {
 increment (state) {
  state.night = !state.night;
  state.text = state.night === true ? '晚上' : '白天';
  state.className = state.night === true ? 'night' : 'morning';
 }
 }
})

4、 main.js import 这个index.js 代码如下:

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store' // 会找index.js 

/* eslint-disable no-new */
new Vue({
 el: '#app',
 router,
 store, // 注入根组件,其他子组件 都可以引用
 template: '<App/>',
 components: { App }
})

5、使用vuex 的状态

组件1:

dom :

<div class="header" :class="model">

js

computed: {
 model() {
  return this.$store.state.className // 是ninght 还是 morning
 }
 },

注意:

:class="model" 这个class 可以绑定一个方法传参数,可以直接用 js 表达式,可以绑定一个计算属性

组件2:

dom:

<div class='modal' @click="changeModel">
 <div class="avatar">
 <img src="../../assets/img/logo.png" width="18" height="18">
 </div>
 <div class="name">
 {{currentModel}}
 </div> 
 <!-- vuex 相当于全局注入 vuex 然后取这里面的值 -->
</div>

js:

computed: {
 currentModel () {
  return this.$store.state.text
 }
 },
 methods: {
 changeModel () {
  // document.body.className='night'
  this.$store.commit('increment')
 }
 }

注意:

js 中的 currentModel 和 dom 中的 {{ currentModel }} 是一个,和 :class 可以跟表达方法一样 ,可以跟变量 ,表达方法 ,表达式 ( 这里灵活的模版方法,回头查看下源码,然后补充这的说明, vue模版为何如此强大!)

点击事件,触发方法 changeModel ,changeModel 触发 mutation 的方法,显示改变 值 ,这个是固定的语法, this.$store.commit('increment');

increment 可以在定义的时候,设置参数,传参数, this.$store.commit('increment', 'argumnet') , 在 mutation 里面  increment (state , arg) { .. = arg; ....};

截图如下:

简单的vuex 的使用案例笔记

默认方式:

如上图显示。默认的是,白天的模式,className 是 morning;

  点击事件触发模式;

简单的vuex 的使用案例笔记

再次点击的时候,可以在改回来,这个窍门,就是 index.js 里面,increment 对 night 的变量 取 对 的一个逻辑方法。跟jq 里面的 toggle,类似

简单的vuex 的使用案例笔记

结束语:

简单的vuex 的案例 ,做个笔记。希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript里的条件判断
Feb 27 Javascript
Jquery知识点二 jquery下对数组的操作
Jan 15 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
Apr 16 Javascript
javascript 通用loading动画效果实例代码
Jan 14 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
基于JavaScript实现一定时间后去执行一个函数
Dec 14 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
Apr 18 Javascript
React-router中结合webpack实现按需加载实例
May 25 Javascript
详解如何在angular2中获取节点
Nov 23 Javascript
vue实现点击展开点击收起效果
Apr 27 Javascript
Jquery实现获取子元素的方法分析
Aug 24 jQuery
VueJS实现用户管理系统
May 29 Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 #Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
Apr 13 #Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 #Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
Apr 13 #Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
Apr 13 #Javascript
如何编写一个d.ts文件的步骤详解
Apr 13 #Javascript
VSCode中如何利用d.ts文件进行js智能提示
Apr 13 #Javascript
You might like
php连接数据库代码应用分析
2011/05/29 PHP
php的memcached客户端memcached
2011/06/14 PHP
php中常用的预定义变量小结
2012/05/09 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
php中adodbzip类实例
2014/12/08 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
js字符编码函数区别分析
2008/06/05 Javascript
JavaScript 学习笔记(十五)
2010/01/28 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
python numpy数组的索引和切片的操作方法
2018/10/20 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
Pycharm中如何关掉python console
2020/10/27 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
展会邀请函范文
2014/01/26 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
导游词之张家口
2019/12/13 职场文书
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL