简单的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 相关文章推荐
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
Jun 29 Javascript
JavaScript prototype属性使用说明
May 13 Javascript
javascript类型转换使用方法
Feb 08 Javascript
jQuery中index()的用法分析
Sep 05 Javascript
在JavaScript中使用JSON数据
Feb 15 Javascript
javascript正则表达式总结
Feb 29 Javascript
手机Web APP如何实现分享多平台功能
Aug 19 Javascript
js中删除数组中的某一元素实例(无下标时)
Feb 28 Javascript
vue动态绑定class选中当前列表变色的方法示例
Dec 19 Javascript
微信小程序顶部导航栏滑动tab效果
Jan 28 Javascript
vue实现多条件和模糊搜索功能
May 28 Javascript
微信小程序实现星星评分效果
Nov 01 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
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
js 可拖动列表实现代码
2011/12/13 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
python binascii 进制转换实例
2019/06/12 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
工程现场管理求职自荐信
2013/10/02 职场文书
销售内勤岗位职责
2014/04/15 职场文书
党员活动日总结
2014/05/05 职场文书
小区推广策划方案
2014/06/06 职场文书
体育教师个人工作总结
2015/02/09 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
python如何进行基准测试
2021/04/26 Python
redis缓存存储Session原理机制
2021/11/20 Redis
Python利用capstone实现反汇编
2022/04/06 Python