vue 创建自己内部vuex方法

简介: vue 创建自己内部vuex方法

项目如果非常大,将项目中所有的公共变量放到vuex里,可想而知,太大了,这时候你就可以考虑如果某些变量只有我这个模块用到了,其他地方用不到,这时候就不需要存全局的vuex了,可以在自己模块内部定义vuex,实现存取,以下就是实现方法,当然有很多中办法,以上就说两种常用的方法:

「 第一种实现方法 」

1、首先保证有vue的环境,其次vuex已安装

2、组件内部导入

import vuex from 'vuex';
import myvuex from './store.js';
const {mapMutations,mapState} = vuex.createNamespacedHelpers('scoreEntry')

3、在mounted里面注册,scoreEntry名称需与第二步创建的命名空间对应

mounted() {
        this.$store.registerModule("scoreEntry", myvuex);
    },

4、在computed里面引入store.js里面的属性

computed: {
        ...mapState(["tercherData"]),
    },

5、在methods里面调用store.js里面的方法

methods: {
        ...mapMutations(["scoreEntrySeeId"]),
    }

store.js文件内容

export default {
    namespaced: true,
    state:{
        tercherData:{
            modifyRecordId:'', //修改记录id
            taskId:'', //成绩录入任务列表(学期级别)dataList中对象返回的id
        }
    },
    getters:{
    },
    mutations: {
        teacherSetTermId(state,payload){  
            state.tercherData.modifyRecordId = payload.data;
        },
        scoreEntrySeeId(state,payload){ 
            state.tercherData.taskId = payload.data;
        },
    }
}

「 第二种实现方法 」

通过Vuex.Store中的modules来分模块引用

第一步新建单独的store模块,module->searchValueStore.js

模块内容与正常的store.js中的内容一样

第二步:在store中引入,通过es6 import 然后通过modules:{ //名称 } 就可以实现注入当前store

调用方法与正常的调用actions和mutations一模一样

交流

我是老礼,公众号「进军全栈攻城狮」作者 ,对前端技术保持学习爱好者。我会经常分享自己所学所看的干货,在进阶的路上,共勉!


相关文章
|
3天前
|
前端开发 JavaScript
Vue底层实现原理总结
Vue底层实现原理总结
|
8天前
|
JavaScript 前端开发 测试技术
使用 Vue CLI 脚手架生成 Vue 项目
通过 Vue CLI 创建 Vue 项目可以极大地提高开发效率。它不仅提供了一整套标准化的项目结构,还集成了常用的开发工具和配置,使得开发者可以专注于业务逻辑的实现,而不需要花费大量时间在项目配置上。
63 7
使用 Vue CLI 脚手架生成 Vue 项目
|
5天前
|
JavaScript
|
3天前
|
JavaScript
vue知识点
vue知识点
12 3
|
6天前
|
存储 JavaScript API
Vue状态管理深度剖析:Vuex vs Pinia —— 从原理到实践的全面对比
Vue状态管理深度剖析:Vuex vs Pinia —— 从原理到实践的全面对比
13 2
|
2天前
|
JavaScript 前端开发
Vue躬行记(7)——渲染函数和JSX
Vue躬行记(7)——渲染函数和JSX
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
1004 0
|
9天前
|
JavaScript 算法
“Error: error:0308010C:digital envelope routines::unsupported”启动vue项目遇到一个错误【已解决
“Error: error:0308010C:digital envelope routines::unsupported”启动vue项目遇到一个错误【已解决
11 1
|
9天前
|
JavaScript
error Component name “Login“ should always be multi-word vue/multi-word-component-names【已解决】
error Component name “Login“ should always be multi-word vue/multi-word-component-names【已解决】
23 1
|
11天前
|
JavaScript API
【vue实战项目】通用管理系统:信息列表,信息录入
【vue实战项目】通用管理系统:信息列表,信息录入
19 3