Javascript - Vue - vuex
vuex
这是一个与vue配套的公共数据管理工具,可以将一些需要共享的数据保存到vuex中,以此方便项目中的任何组件都可以从vuex中得到共享数据。cnpm i vuex -S 装包
读取数据
Vue.use(Vuex)
var store = new Vuex.Store({
//state:数据存储仓库
state: {
txt: "hello"
}
})
el: "#box",
store: store
})
现在可以在项目中的任何可以使用js的文件中访问store
{{$store.state.txt}}
</div>
操作数据
虽然可以使用$store.state.txt=xx的方式直接操作数据,但vuex并不建议这样做,更高级的方法是使用vuex的mutations,操作数据的代码方法放在mutations中,然后通过$store调用操作方法处理数据。mutations内的方法最多接收两个参数,第一个固定为state,另一个是自定义参数。
var store = new Vuex.Store({
//state:数据存储仓库
state: {
txt: "hello"
},
//代理执行对数据的操作
mutations: {
add(state) {
state.txt += "worlld";
}
}
});
var vm = new Vue({
el: "#box",
store: store,
methods: {
add: function () {
this.$store.commit("add");
}
}
})
包装数据
如果需要对数据进行包装处理,可以使用getters,获取数据的时候就不再直接调用$store.state.xx
//存储
state: {
count: 0
},
//操作
mutations: {
add: function (state, num) {
state.count += num;
},
remove: function (state, num) {
state.count -= num;
}
},
//包装,可以对仓储的数据进行包装或计算
getters: {
wrapperValue: function (state) {
return "当前数量" + state.count;
}
}
});
//获取包装的数据:$store.getters.wrapperValue
持久化存储
vue路由机制使不需要刷新浏览器地址就可以静态加载组件到客户端页面上显示,而vuex默认的存储机制也只是在不刷新的前提下存储数据,如果向持久化存储数据,则需要使用js原生的对象localStorage,将数据存储在localStorage中,刷新浏览器页面后需要从vuex的store中读取数据,则可以把localStorage的数据放到vuex中。
<div>
<input type="text" ref="input">
<button @click="add">持久化存储</button>
{{$store.state.x}}
</div>
</template>
methods: {
add: function () {
var x = this.$refs.input.value;
this.$store.commit("add", x);
}
}
};
在main.js中
var store = new Vuex.Store({
state: {
x: x,//将本地存储库的数据放到vuex的仓储中
},
mutations: {
add: function (state, str) {
state.x += str;
localStorage.setItem("x", state.x);
}
}
});
刷新浏览器后数据依然存在
localStorage.clear() //移除所有数据
更多关于localStorage的信息,参考:localStorage使用总结
Javascript - Vue - vuex的更多相关文章
- 我的音乐盒子(nodejs7 + koa2 + vue + vuex + vue-router)
你们知道的,nodejs对jser来说,是个好东西,快快的,自从接触nodejs后,总想弄点东西. 这弄个啥了,一天打开百度音乐盒,哟,自己弄一个如何了,好啊好啊. 后台: nodejs 7 + ko ...
- vue vuex vue-rouert后台项目——权限路由(超详细简单版)
项目地址:vue-simple-template共三个角色:adan barbara carrie 密码全是:123456 adan 拥有 最高权限A 他可以看到 red , yellow 和 blu ...
- Vue+Vuex实现自动登录 升级版
Vue+Vuex实现自动登录 升级版 之前实现的版本在这里:Vue+Vuex实现自动登录 在之前实现的版本中,如果你进行测试,可以看到在浏览器的local Storage中,确实里面有了我 ...
- 基于Vue+Vuex+Vue-Router+axios+mint-ui的移动端电商项目
第一步:安装Node 1.打开NodeJS的官网,下载和自己系统相配的NodeJS的安装程序,包括32位还是64位一定要选择好,否则会出现安装问题. 下载地址:https://nodejs.org/e ...
- vue+vuex初入门
Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 解决问题: 传参的方法对于多层嵌 ...
- use vue vuex vue-router, not use webpack
vue,vuex,vue-router放在一起能做什么?不用webpack之类的打包工具使用他们是否可行?各位道友在初学vue时是否有这样的困惑.因为现代构建前端项目的一般模式是: 安装webapck ...
- [ABP开源项目]--vue+vuex+vue-router+EF的权限管理系统
好久没写文字了,当然大家也不期待嘛,反正看代码就行了. 演示网站 首先说下这个项目吧. 如标题一样是基于VUE+.NET开发的框架,也是群友一直吼吼吼要一个vue版本的ABP框架. 我们先来看看首页吧 ...
- 基于Vue + Vuex + Vue-router + Webpack 2.0打造微信界面
一.项目简介 基于Vue + Vuex + Vue-router + Webpack 2.0打造微信界面,实现了微信聊天.搜索.点赞.通讯录(快速导航).个人中心.模拟对话.朋友圈.设置等功能. 二. ...
- vue+vuex+axios+echarts画一个动态更新的中国地图
一. 生成项目及安装插件 # 安装vue-cli npm install vue-cli -g # 初始化项目 vue init webpack china-map # 切到目录下 cd china- ...
随机推荐
- 答读者问(1):非模式物种找marker;如何根据marker定义细胞类型
下午花了两个小时回答读者的疑问,觉得可以记录下来,也许能帮到一部分人. 第一位读者做的是非模式物种的单细胞. 一开始以为是想问我非模式物种的marker基因在哪儿找,读者朋友也提到了blast 研究的 ...
- EasyUI:combotree(树形下拉框)复选框选中父节点(子节点的状态也全部选中)输入框中只显示父节点的文本值
参考: https://blog.csdn.net/weixin_43236850/article/details/100320564
- POJ3615-Floyd
http://poj.org/problem?id=3615 因为只需要求所在路径的最大高度的最小值,而且n<=300,我们可以用floyd跑. g[i][j]=min(g[i][j],max( ...
- Redis介绍及使用(八)
一.什么是Redis 1.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库.(非关系型缓存数据库) 2.五种数据类型: 3.支持持久化. 参看链接:https:// ...
- vue-cli 3.0脚手架创建vue项目
1. 卸载vue-cli 2.0 npm uninstall -g vue-cli 2. 安装vue-cli 3.0 npm install @vue/cli 3. 创建项目 npm create & ...
- 第十八篇 -- 在C++中嵌入汇编语言
基于C++宝典的学习 一.什么是汇编语言 汇编语言是一种功能很强的程序设计语言,也是利用了计算机所有硬件特性并能直接控制硬件的语言.在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Sym ...
- 手把手教你玩转HarmonyOS版地图应用开发
一.导读 7月31日,华为HarmonyOS开发者日将在杭州举行.为了方便更多开发者,高德开放平台地图SDK已在业内率先实现鸿蒙化迁移和重构,全面适配HarmonyOS并面向开发者免费发布.开发者可 ...
- 解决Docker安装慢
之前介绍了Ubuntu安装Docker教程,在实际安装过程中,可能受限于国内网络问题,安装缓存或者失败.下面介绍一种通过国内镜像方式,仅需要执行一段脚本即可大幅度提升Docker的安装速度. Linu ...
- 如何生成effective-pom
effective-pom是什么?我们知道任何一个项目的pom都至少继承了maven内置的超级pom,有些项目中的用户还会配置自己的继承层次,也就是说,但从当前的pom是无法全面了解项目信息的,你必须 ...
- 基于MD5+RSA算法实现接口调用防扯皮级鉴权
概述 最近项目中需要对第三方开发接口调用,考虑了一下,准备采用MD5+RSA算对请求数据进行签名,来达到请求鉴权,过滤非法请求的目标. 数字签名采用MD5+RSA算法实现.RSA私钥要严格保密并提供安 ...