Vuex的使用,绝对简单的讲解,看完就会
2021/6/7 18:53:37
本文主要是介绍Vuex的使用,绝对简单的讲解,看完就会,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Vuex是什么?
官方解释为,Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。简单点说,我认为Vuex就是为定义全局变量全局函数而生的东西。
如何使用
一般在vue项目中会有这样的文件夹
接下来讲一下这些文件的作用,modules这里一般存储所有的方法,新建了文件需要在index.js里声明一下,getters.js是get方法,用于获取vuex下变量的值
废话不多说,具体如何使用如何编写,上代码
首先,这个文件夹要生效,就需要声明到main.js里。
main.js
import store from './store' new Vue({ store, })
然后是index.js,这里就随便举个例子,之后要注册就和这里user的写法相似就行,先import声明然后vuex.store中调用
index.js
import Vue from 'vue' import Vuex from 'vuex' import user from './modules/user' import getters from './getters' Vue.use(Vuex) const store = new Vuex.Store({ modules: { user, }, getters }) export default store
紧接着就是modules文件夹下的文件写法,这里以user为例
modules/user.js
const user = { state: {//声明全局参数 user:'' }, mutations: {//set方法,存储时使用--->>this.$store.commit('SET_USER',值) SET_USER(state,user){ state.user = user } }, //getters: {},//get方法,一般不用,在getters文件中声明即可 actions: {//全局函数 GetInfo({ commit, state }) { return new Promise((resolve, reject) => { //一般调用接口请求 getInfo(state.token).then(res => { commit('SET_USER', res.user) resolve(res)//传递出去的参数,传递多个可用数组eg:resolve([res.user,res.code]) }).catch(error => { reject(error) }) }) }, }, //modules:{}//引入其他的modules,一般在index中使用 } export default user
最后,就是getters.js文件,这个文件主要是获取变量的值,具体调用$store.getters.user
getters.js
const getters = { user: state => state.user.user, } export default getters
store下的文件说完了,接下来就是如何调用的问题了
Vuex内变量和函数的调用
一、在组件中调用
1、获取值和函数
方法一
获取值:
取在getters.js文件中声明过的
this.$store.getters.user
如果没在getters.js中声明过,可以通过这种方法直接获取
this.$store.state.文件名.变量名 例如: this.$store.state.user.user
直接可以获取变量值,如果在template下则去掉this.即可
调用函数:
this.$store.dispatch('函数名',传入参数).then(传来参数 => {}) 例如: this.$store.dispatch('GetInfo',传入参数).then(res => { console.log(res) })
方法二
//首先引入mapState和mapActions import { mapState, mapActions } from "vuex"; computed: { // 利用辅助函数 获取state中的数据 ...mapState("user", ["user"]), }, methods: { // 辅助函数 来获取actions中的方法 ...mapActions("user", ["GetInfo"]), }
声明完后使用,变量直接this.user,函数直接this.GetInfo(),在template下则去掉this.即可
2、存入值
this.$store.commit('SET_USER',值)
二、在js文件中调用
首先引入store
import store from '@/store'
然后调用
store.getters.user //读取getters下的变量值 store.state.文件名.变量名 //读取指定文件下state下的变量的值 store.commit('SET_USER',值) //存入值 store.dispatch('函数名',传入参数).then(传来参数 => {}) //action下函数调用
最后
最常用的vuex大概到这里就结束了,使用谷歌vue插件可以更好的观察vuex中变量的变化。附上vuex例子:vue动态路由实现
如有不对请评论纠正,看完点个赞再走吧
这篇关于Vuex的使用,绝对简单的讲解,看完就会的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-30React Native常用组件-点击组件
- 2024-05-30uniapp+vue3+uv-ui手机端后台OA管理模板
- 2024-05-29Python网络爬虫的时候json=就是让你少写个json.dumps()
- 2024-05-27React Native常用组件-展示组件
- 2024-05-27React Native常用组件-列表组件
- 2024-05-09vue3开发前端表单缓存自定义指令,移动端h5必备插件
- 2024-05-09React Hooks在class组件中的使用方式
- 2024-03-30[OIDC in Action] 2. 基于OIDC(OpenID Connect)的SSO(纯JS客户端)
- 2024-03-29terraform jsonencode
- 2024-03-13vuex-persist