如何在Vue项目中使用vuex

 更新时间:2023年01月23日 11:52:10   作者:The..Fuir  
这篇文章主要介绍了如何在Vue项目中使用vuex问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

在Vue项目中使用vuex

在一个vue项目中使用vuex,需要根据项目来源分两种情况 :

  • 第一种情况:在老项目中使用。 先额外安装vuex包,然后在配置。
  • 第二种情况:在新项目中使用。 在配置vue-cli中创建项目时,就可以直接选中vuex项,这样就不用做任何配置了(脚手架会自动帮我们完成的)。

具体如下图示:

这里我们主要说明第一种情况,在一个老项目中如何使用vuex,步骤如下:

1.首先安装vuex包,安装完之后开始配置

2.在src目录下创建一个文件夹store,在store文件夹中新建一个index.js文件

3.创建Vuex.store实例 :index.js中进行如下配置:

4.向Vue实例注入store:main.js中进行如下配置: 

5.配置完后就可以在任意组件中使用了 

在任意组件中,通过this.$store.state 来获取公共数据,在模板中,则可以省略this而直接写成: {{$store.state.属性名}}

一、安装vuex

npm install vuex --save

二、创建store

在项目src目录下创建store目录,在store目录中创建index.js文件。

写入一下内容:

import Vue from 'vue'
import Vuex from 'vuex'
 
// 挂在Vuex
Vue.use(Vuex)
 
// 创建Vuex对象
const store = new Vuex.Store({
    state:{
        // 存放的键值对就是所要管理的状态
        // 以key:value为例
        key : value,
    },
    mutations:{
        setKey(state, payload) {
            state.key = payload;
        }
    }
})
 
export default store

三、挂载store

在main.js中,添加代码:

import store from './store'
 
new Vue({
  el: '#app',
  router,
  store: store, //store:store 和 router一样,将我们创建的Vuex实例挂载到这个vue实例中
  components: { App },
  template: '<App/>'
})

四、在组件中使用

将需要使用的值写在computed中:

computed:{
    key() {
        return this.$store.state.key;
    }
}

如果在组件中使用v-model绑定computed中的值,需要在computed中定义set方法,如下:

computed:{
    key:{
        get(){
            return this.$store.state.key;
        },
        set(val){
            this.$store.commit('setKey', val);
        }
    }
}

五、在Vue组件中监听Vuex

在Vue组件中监听Vuex:

  • 通过computed获取vuex中的状态值。
  • 通过watch监听值的改变。
computed:{
    key(){
        return this.$store.state.key;
    }
},
watch:{
    key(val) {
        // 要做的操作
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue长按事件和点击事件冲突的解决

    vue长按事件和点击事件冲突的解决

    这篇文章主要介绍了vue长按事件和点击事件冲突的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue+WebSocket页面实时刷新长连接的实现

    Vue+WebSocket页面实时刷新长连接的实现

    最近vue项目要做数据实时刷新,数据较大,会出现卡死情况,所以本文主要介绍了页面实时刷新长连接,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Vue父组件监听子组件生命周期

    Vue父组件监听子组件生命周期

    这篇文章主要介绍了Vue父组件监听子组件生命周期,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • vue中proxy代理的用法(解决跨域问题)

    vue中proxy代理的用法(解决跨域问题)

    这篇文章主要介绍了vue中的proxy代理的用法(解决跨域问题),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 基于vue2.0+vuex+localStorage开发的本地记事本示例

    基于vue2.0+vuex+localStorage开发的本地记事本示例

    这篇文章主要介绍了基于vue2.0+vuex+localStorage开发的本地记事本示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • Vue多种方法实现表头和首列固定的示例代码

    Vue多种方法实现表头和首列固定的示例代码

    本篇文章主要介绍了Vue多种方法实现表头和首列固定的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Vue组件生命周期运行原理解析

    Vue组件生命周期运行原理解析

    这篇文章主要介绍了Vue组件生命周期运行原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • vue项目中存储与使用后端传递过来的token

    vue项目中存储与使用后端传递过来的token

    vue作为一个单页面应用,vuex作为它的状态管理工具,它至少是可以很好的保存这个token值,下面这篇文章主要给大家介绍了关于vue项目中存储与使用后端传递过来的token的相关资料,需要的朋友可以参考下
    2023-03-03
  • 如何解决Vue3组合式API模式下动态组件不渲染问题

    如何解决Vue3组合式API模式下动态组件不渲染问题

    这篇文章主要介绍了如何解决Vue3组合式API模式下动态组件不渲染问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教<BR>
    2024-03-03
  • 关于electron-vue打包后运行白屏的解决方案

    关于electron-vue打包后运行白屏的解决方案

    这篇文章主要介绍了关于electron-vue打包后运行白屏的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10

最新评论