【前端】Vue2全家桶案例《看漫画》之三、引入vuex
转载请注明出处: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的更多相关文章
- 【前端】Vue2全家桶案例《看漫画》之一、添加四个导航页
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_1.html 项目github地址:https://github.com/shamoyuu/ ...
- 【前端】Vue2全家桶案例《看漫画》之番外篇、express上传漫画(可选)
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_extra_1.html 项目github地址:https://github.com/sha ...
- 【前端】Vue2全家桶案例《看漫画》之六、图片阅读页
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_6.html 项目github地址:https://github.com/shamoyuu/ ...
- 【前端】Vue2全家桶案例《看漫画》之四、漫画页
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_4.html 项目github地址:https://github.com/shamoyuu/ ...
- 【前端】Vue2全家桶案例《看漫画》之二、完成首页基本样式
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_2.html 项目github地址:https://github.com/shamoyuu/ ...
- 【前端】Vue2全家桶案例《看漫画》之七、webpack插件开发——自动替换服务器API-URL
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_7.html 项目github地址:https://github.com/shamoyuu/ ...
- 【前端】Vue2全家桶案例《看漫画》之五、引入axios
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_5.html 项目github地址:https://github.com/shamoyuu/ ...
- Vue2全家桶+Element搭建的PC端在线音乐网站
目录 1,前言 2,已有功能 3,使用 4,目录结构 5,页面效果 登录页 首页 排行榜 歌单列表 歌单详情 歌手列表 歌手详情 MV列表 MV详情 搜索页 播放器 1,前言 项目基于Vue2全家桶及 ...
- Vue2全家桶之一:vue-cli(vue脚手架)超详细教程
本文转载于:https://www.jianshu.com/p/32beaca25c0d 都说Vue2简单上手容易,的确,看了官方文档确实觉得上手很快,除了ES6语法和webpack的配置让你感到 ...
随机推荐
- AutoCAD开发选择----ObjectARX还是.net API(转载)
本文基于AutoCAD 2006新推出的.NET API为工具,介绍了在.NET平台下对AutoCAD进行二次开发的技术,并与目前常用的VBA.ObjectARX作了对比.同时讨论了如何弥补.NET ...
- SQL语句-INSERT语句
Insert语句 Insert语句三种写法: mysql> desc students; +-------+-------------+------+-----+---------+------ ...
- Gitlab权限管理-issue管理[六]
标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 设置好密码后登录进入管理目录 创建组 设置组名和权限 创建用户 已有四个用户了 给p ...
- WEB渗透测试之漏扫神器
AppScan 对现代 Web 应用程序和服务执行自动化的动态应用程序安全测试(DAST) 和交互式应用程序安全测试 (IAST).支持 Web 2.0. JavaScript 和 AJAX 框架的全 ...
- BZOJ 4078: [Wf2014]Metal Processing Plant [放弃了]
以后再也不做$World Final$的题了................ 还我下午 bzoj上TLE一次后就不敢交了然后去uva交 Claris太神了代码完全看不懂 还有一个代码uva上竟然WA了 ...
- 数据分析之pandas教程------数据处理
目录 1 数据合并 1.1 实现数据库表join功能 1.2 实现union功能 2 数据转换 2.1 轴旋转 2.2 数据转换 2.2.1 去重 2.2.2 对某一列运用函数 2.2 ...
- Redis简介及使用详解
一.Redis的简介 在缓存技术里面相对于memcache来说,redis逼格更高,原因redis不单单只是做缓存,它更能相对memcache更加广泛,但是也是因不同的项目而用,redis的 一个内存 ...
- PHP curl 常用操作
网页内容替换 $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://www.baidu.com"); //执行后 ...
- vagrant启动报错The following SSH command responded with a no
vagrant package打包生成box,以这个box为基础模板,打造vagrant环境,启动vagrant报错 angel:vagrant $ vagrant up Bringing machi ...
- JaveScript函数(JS知识点归纳六)
1.函数的基本使用 a)作用:代码的复用,灵活性比较强 b)声明方式:function 名 (形参){函数体} c)调用: 名(实参); d)封装函数--书写一个函数的结构,而且放入一些功能,在需要使 ...