转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_3.html

项目github地址:https://github.com/shamoyuu/vue-vux-iconan

这一章我们简单地介绍一下vuex,然后引入它做一个简单的功能,后面用到我们再说。

首先,vuex是什么?引用一下官方文档:

“Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。”

好抽象有木有?我第一次看见这句话的时候完全不知道在说什么,可能是我笨o(╥﹏╥)o。

后来懂了才发现其实很简单,我举几个例子解释一下。

1:小张在做个人中心页面,在登录前显示默认的头像和昵称,要求登录后显示用户的头像和昵称。但是登录页与个人中心页不是父子关系,而且有很多渠道可以打开登录页。

2:小李在做悬浮购物车,要求有商品加入后就更新悬浮购物车上显示的数量。但是商品加车可以在很多页面操作,比如列表页,搜索页,详情页,推荐页等等。

3:小王在做设置页,要求在用户绑定/修改手机号后,其他页面同步显示最新的手机号。修改手机号只有一处,但是需要显示手机号的地方却很多。

vuex就是用来解决这样的问题的。虽然不用vuex也可以通过一些其他的方法实现,但是在项目变大后,就越来越难维护了。

简介就到这里,下面我们来实际使用一下。

首先引入vuex

npm install --save-dev vuex

然后新建一个/tool/store/store.js文件,用来保存和获取我们上面说到的“头像昵称”、“购物车商品”、“手机号”

import Vue from 'vue'
import Vuex from 'vuex' Vue.use(Vuex); const state = {
count: ,
author: "静茹♂鱼"
}; const mutations = {
add(state){
state.count += ;
},
reduce(state){
state.count -= ;
}
}; const getters = {
author (state) {
return "❤❤❤" + state.author + "❤❤❤";
}
}; export default new Vuex.Store({
state,
mutations,
getters
});

然后我们新建一个测试文件Test.vue,就简简单单地来测试一下vuex这几个简单的方法。

<template>
<div>
<h1>{{count}}</h1>
<hr>
<button @click="$store.commit('add')">加</button>
<hr>
<button @click="$store.commit('reduce')">减</button>
<hr>
<button @click="foo">查看</button>
<hr> {{author}}
</div>
</template> <script>
import { mapState, mapGetters } from "vuex"; export default {
data() {
return {};
},
methods: {
foo: function() {
console.info(this.$store.state.count);
}
},
mounted: function() {},
computed: {
...mapState(["count"]),
...mapGetters(["author"])
}
};
</script> <style scoped> </style>

点击加减就会操作store里的count数,点击查看就能从js里获取到store的count。而author(或许应该称为getAuthor)就能通过getter的方式获取到store.author。

【前端】Vue2全家桶案例《看漫画》之三、引入vuex的更多相关文章

  1. 【前端】Vue2全家桶案例《看漫画》之一、添加四个导航页

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_1.html 项目github地址:https://github.com/shamoyuu/ ...

  2. 【前端】Vue2全家桶案例《看漫画》之番外篇、express上传漫画(可选)

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_extra_1.html 项目github地址:https://github.com/sha ...

  3. 【前端】Vue2全家桶案例《看漫画》之六、图片阅读页

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_6.html 项目github地址:https://github.com/shamoyuu/ ...

  4. 【前端】Vue2全家桶案例《看漫画》之四、漫画页

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_4.html 项目github地址:https://github.com/shamoyuu/ ...

  5. 【前端】Vue2全家桶案例《看漫画》之二、完成首页基本样式

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_2.html 项目github地址:https://github.com/shamoyuu/ ...

  6. 【前端】Vue2全家桶案例《看漫画》之七、webpack插件开发——自动替换服务器API-URL

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_7.html 项目github地址:https://github.com/shamoyuu/ ...

  7. 【前端】Vue2全家桶案例《看漫画》之五、引入axios

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_5.html 项目github地址:https://github.com/shamoyuu/ ...

  8. Vue2全家桶+Element搭建的PC端在线音乐网站

    目录 1,前言 2,已有功能 3,使用 4,目录结构 5,页面效果 登录页 首页 排行榜 歌单列表 歌单详情 歌手列表 歌手详情 MV列表 MV详情 搜索页 播放器 1,前言 项目基于Vue2全家桶及 ...

  9. Vue2全家桶之一:vue-cli(vue脚手架)超详细教程

    本文转载于:https://www.jianshu.com/p/32beaca25c0d   都说Vue2简单上手容易,的确,看了官方文档确实觉得上手很快,除了ES6语法和webpack的配置让你感到 ...

随机推荐

  1. Shell脚本中使用function(函数)示例

    这篇文章主要介绍了Shell脚本中使用function(函数)示例,本文着重讲解的是如何在shell脚本中使用自定义函数,并给出了两个例子,需要的朋友可以参考下   函数可以在shell script ...

  2. jenkins之角色授权[六]

    标签(linux): jenkins 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 有时候我们公司里面可能有好几个开发团队,当你做完jenkins后,对于测试环 ...

  3. KVM虚拟机绑定物理CPU进行性能调优

    PS:前提是虚拟cpu总个数不多于物理cpu总个数.   绑定方法: 虚拟机的虚拟cpu有1个,实体机物理cpu有8个,可以通过以下方式绑定cpu,绑定的动作不一定要在虚机启动时,可以在任何时候: 绑 ...

  4. Python笔记001-----简介及常用的库

    1.Python是一种解释性语言,大部分代码要比编译型语言(如C++,java等)运行要慢点多.2.对于高并发,多线程的应用程序而言,Python并不是理想语言,python有全局解释器锁(Globa ...

  5. python之在线平台与量化投资

    0. 第一个量化策略 # 初始化函数,设定基准等等 def initialize(context): set_benchmark('000300.XSHG') g.security = get_ind ...

  6. mongodb监控常用方法

    列举mongodb监控的常用命令 1.监控统计 mongostat 可用于查看当前QPS/内存使用/连接数,以及多个shard的压力分布 命令参考 ./mongostat --port 27071 - ...

  7. 针对Chrome谷歌等浏览器不再支持showModalDialog的解决方案

    最近在维护一个老项目,之前都是用IE来调试代码的.今天想着测试一下项目的兼容性,就用了谷歌浏览器,然后就遇到这样一个问题:一段用showModalDialog实现弹出模态框和返回值的js代码,在调试时 ...

  8. linux基本语法和常用运维命令

    linux上的操作一般是命令行操作,看起来很高大上,让人畏而远之. Help!Help! 忽然间闯入的linux黑黑的世界,怎么办,不要慌.赶紧敲出一个help命令,然后回车,黑色的窗口就会展示一些常 ...

  9. 分布式唯一id:snowflake算法思考

    匠心零度 转载请注明原创出处,谢谢! 缘起 为什么会突然谈到分布式唯一id呢?原因是最近在准备使用RocketMQ,看看官网介绍: 一句话,消息可能会重复,所以消费端需要做幂等.为什么消息会重复后续R ...

  10. [用CDQ分治解决区间加&区间求和]【习作】

    [前言] 作为一个什么数据结构都不会只会CDQ分治和分块的蒟蒻,面对区间加&区间求和这么难的问题,怎么可能会写线段树呢 于是,用CDQ分治解决区间加&区间求和这篇习作应运而生 [Par ...