vuex 快速上手,具体使用方法总结(含使用例子)
网上有关vuex的文章很多,但有些比较复杂,这篇文章能让你快速使用vuex:
vuex 用处:管理全局状态(类似全局变量,每个组件都能访问到)
结构:
- state 存放状态
- mutations state成员操作(修改state值唯一的方法)
- getters 加工state成员给外界
- actions 异步操作
- modules 模块化状态管理
vuex 用法:
1. 安装:npm install vuex --save (安装vuex保存到本地)
2. 创建js文件(见下图,这里我随意命名为store.js)
3.然后我们在main.js文件中:
3.1 引入文件(根据自己的路径写): import store from './store.js';
3.2 在vue实例全局引入store对象:new Vue({store})
以上步骤就完成了,接下来是具体使用方法
//下面是一个js文件,用最简单最全的例子展示了全局数据 city 和 cityID 的声明以及改变的方法;
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
city: '深圳',
cityID: "1"
},
getters: {
getCity(state) { //方法名随意,主要是来承载变化的city的值,下面mutations,actions里面的方法名也是随意定的
return state.city
},
getCityId() { //方法名随意,主要是用来承载变化的cityID的值,下面mutations,actions里面的方法名也是随意的
return state.cityID
}
},
mutations: {
setCity(state, value) {
state.city = value;
},
setCityID(state, value) {
state.cityID = value;
}
},
actions: {
selectCity(context, params) {
context.commit('setCity', params.city);
},
selectCityID(context, params) {
context.commit('setCityID', params.id);
}
}
});
export default store;
获取和修改state有使用辅助函数和不使用两种方法,如果使用,请在使用的文件中添加:
import {mapState,mapGetters,mapMutations,mapActions} from 'vuex'
获取state的方法:
1.不引入 mapState(不使用辅助函数): this.$store.state
2.引入 mapState(使用辅助函数):
computed: {
//设置别名,起到简化代码的作用,比如this.$store.state.cityID可以用this.cId替代
// 方法一:
// ...mapState({
// cId: state => state.cityID,
// cname:state => state.city
// }),
// 方法二:
// ...mapState({
// cId: 'cityID',
// cname:'city'
// }),
// 方法三(不设置别名,直接使用this.cityID即可):
...mapState(['cityID','city']),
},
修改state的方法:
1.不引入 mapState(不使用辅助函数):
方法一: 用this.$store.commit执行mutation里的方法
//this.$store.commit("setCityID", 6);
方法二: 用 this.$store.dispatch执行actions里的方法
//this.$store.dispatch("selectCity", { id: 6});
2.引入 mapState(使用辅助函数),和获取state一样能设置别名,下面不配置别名:
methods: {
...mapActions(['cityID','selectCityID']),
changeId(params) { //params为要修改的数,比如6
this.selectCityID({ id:params });
console.log(this.$store.state);//这时候打印出来cityID变为6了
}
},
vuex 快速上手,具体使用方法总结(含使用例子)的更多相关文章
- vue.js和vue-router和vuex快速上手知识
vue.js和vue-router和vuex快速上手知识 一直以来,认为vue相比react而言,学习成本会更低,会更简单,但最近真正接触后,发现vue的各方面都有做一些客户化的优化,有一些亮点,但也 ...
- 9、vuex快速上手
vue脚手架 npm install -g vue-cli usage: vue init example: vue init webpack myvue 安装vuex: npm i -S vuex ...
- smarty 快速上手
smarty半小时快速上手入门教程 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-10-27我要评论 这篇文章主要介绍了smarty半小时快速上手入门教程,以实例的形 ...
- smarty半小时快速上手入门教程
http://www.jb51.net/article/56754.htm http://www.yiibai.com/smarty/smarty_functions.html http://www. ...
- 『转载』Debussy快速上手(Verdi相似)
『转载』Debussy快速上手(Verdi相似) Debussy 是NOVAS Software, Inc(思源科技)发展的HDL Debug & Analysis tool,这套软体主要不是 ...
- 如何快速上手一个新技术之vue学习经验
碰到紧急项目挪别人的vue项目过来直接改,但是vue是18年初看过一遍,18年底再来用,早就忘到九霄云外了,结果丢脸的从打开vue开始学,虽然之前在有道云笔记做了很多记录,然后没有系统整理.所以借这次 ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
- 【opencv入门篇】 10个程序快速上手opencv【上】
导言:本系列博客目的在于能够在vs快速上手opencv,理论知识涉及较少,大家有兴趣可以查阅其他博客深入了解相关的理论知识,本博客后续也会对图像方向的理论进一步分析,敬请期待:) PS:官方文档永远是 ...
- 三分钟快速上手TensorFlow 2.0 (下)——模型的部署 、大规模训练、加速
前文:三分钟快速上手TensorFlow 2.0 (中)——常用模块和模型的部署 TensorFlow 模型导出 使用 SavedModel 完整导出模型 不仅包含参数的权值,还包含计算的流程(即计算 ...
随机推荐
- 【JZOJ4762】【NOIP2016提高A组模拟9.7】千帆渡
题目描述 输入 输出 样例输入 5 1 4 2 5 1 4 1 1 2 4 样例输出 2 1 4 数据范围 解法 设f[i][j]表示前 i个蓝色帆船中,选择了第 j个红色帆船作为结尾的最大答案. 那 ...
- 洛谷 P1027 Car的旅行路线 最短路+Dijkstra算法
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P1027 Car的旅行路线 题目描述 又到暑假了,住在 ...
- JavaScript实现,控制一个文本框只能输入正整数,如输入不符合条件则文本框全部字体标红
腾讯2014年研发职位笔试题Web前端方向简单题第一题. 代码: <html> <head> <title>test JavaScript</title> ...
- Laravel 登录后清空COOKIE 方法
需求 在Laravel 登陆立即清空保存的COOKIE数组 实现 # Http/Controllers/Auth/LoginController.php public function redirec ...
- linux下的远程数据库(Oracle)中文乱码问题
适用于本地客户端(PLSQL Developer )访问远程数据库时,查询结果出现的乱码,当在远程数据库上查询结果时显示正常. 1.查询远程数据库的编码: select userenv('langua ...
- Xcode10 import导入文件的坑
更新了10.0的Xcode,踩了两个坑,记录一下. #import "" 双引号内输入任何字符 都会导致Xcode崩溃 解决方案: target - buildSettings - ...
- jq 操作CSS
方式有两种,一种是操作元素className间接控制样式,一种是设置css属性值直接控制样式. jQuery 属性操作方法.jQuery CSS 操作函数 1.addClass() $(selecto ...
- React全家桶打造共享单车后台管理系统项目_第1篇_项目环境搭建_首页编写
1.项目介绍 项目github地址:https://github.com/replaceroot/React-manageSystem 项目整体架构: 课程大纲: 第一章:React基础知识 ...
- Java练习 SDUT-2272_Time
Time Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description Digital clock use 4 digits to e ...
- Java练习 SDUT-1132_斐波那契数列
C/C++经典程序训练2---斐波那契数列 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 编写计算斐波那契(Fibon ...