vuex的基础使用以及四个map方法和xuex模块化和命名空间总结

举报
一向很安静 发表于 2022/02/21 15:27:46 2022/02/21
【摘要】 上一篇简单的和大家介绍了关于,在本篇我会给大家介绍一下关于vue中关于vuex的部分基本上已经说玩了,如果后续vue可能存在版本更替技术迭代等等的事情,后面我也是会继续和大家分享关于我掌握的这部分技术。开始我们本篇的总结,在我看来感觉上vuex就是把平时在写vue项目中的script标签的大部分代码给提了出去,当然不只是提了出去还把他共享了出去。本来呢是这样的![image.png](htt...

上一篇简单的和大家介绍了关于,在本篇我会给大家介绍一下关于vue中关于vuex的部分基本上已经说玩了,如果后续vue可能存在版本更替技术迭代等等的事情,后面我也是会继续和大家分享关于我掌握的这部分技术。开始我们本篇的总结,在我看来感觉上vuex就是把平时在写vue项目中的script标签的大部分代码给提了出去,当然不只是提了出去还把他共享了出去。


本来呢是这样的

![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c38b9deb99b2487886ac7bf50fc0c937~tplv-k3u1fbpfcp-watermark.image?)

现在呢是这样的
 
![1644919146(1).png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ac93cc72370748d593f5479dad965d38~tplv-k3u1fbpfcp-watermark.image?)

下面我就和大家讲讲这就vuex的主要的内容如:
### 搭建vuex环境

1. 创建文件:```src/store/index.js```

   ```js
   //引入Vue核心库
   import Vue from 'vue'
   //引入Vuex
   import Vuex from 'vuex'
   //应用Vuex插件
   Vue.use(Vuex)
   
   //准备actions对象——响应组件中用户的动作
   const actions = {}
   //准备mutations对象——修改state中的数据
   const mutations = {}
   //准备state对象——保存具体的数据
   const state = {}
   
   //创建并暴露store
   export default new Vuex.Store({
       actions,
       mutations,
       state
   })
   ```

2. 在```main.js```中创建vm时传入```store```配置项

   ```js
   ......
   //引入store
   import store from './store'
   ......
   
   //创建vm
   new Vue({
       el:'#app',
       render: h => h(App),
       store
   })
   ```
### 四个map方法
mapActions 方法生成关于actions文件中的数据

mapMutations 方法生成关于mutations文件中的数据

mapState 方法生成关于state文件中的数据

mapGetters 方法生成关于 getters 文件中的数据 

主要当不使用mapGetters方法操作getters的时候 想触发里面的东西需要在路径中加 ` / ` 例如: `return this.$store.getters['personAbout/firstPersonName']`而其它就是`return this.$store.state.xxx`

### xuex模块化和命名空间
:需要在每个模块的配置中添加`namespaced:true,`

```js
//求和相关的配置
export default {
    namespaced:true,
    actions:{
        ·····
    },
    mutations:{
        ·····
    },
    state:{
        ·····
    },
    getters:{
                ·····
    },
}
```
引入的时候添加一个 `modules`模块  在其它组件获取时候

第一种方式 :`this.$store.state.personAbout.personList`

第二中方式 : `...mapState('personAbout',['personList']),`
```js
以及在index人口引入
//该文件用于创建Vuex中最为核心的store
import Vue from 'vue'
//引入Vuex
import Vuex from 'vuex'
import countOptions from './count'
import personOptions from './person'
//应用Vuex插件
Vue.use(Vuex)

//创建并暴露store
export default new Vuex.Store({
    modules:{
        countAbout:countOptions,
        personAbout:personOptions
    }
})
```

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。