• Vuex状态(数据)管理


    1)vuex是什么?怎么使用?哪种功能场景使用它?

    vue框架中状态管理。在main.js引入store注入。新建一个目录store 。场景有:单页应用中,组件之间的状态,音乐播放、登录状态、加入购物车等。

    1. // 搭建Vuex环境
    2. 1、 创建文件:srcore/index.js
    3. //引入Vue核心库
    4. import Vue from 'vue'
    5. //引入Vuex
    6. import Vuex from 'vuex'
    7. //应用Vuex插件
    8. Vue.use(Vuex)
    9. //准备actions对象——响应组件中用户的动作
    10. const actions = {}
    11. //准备mutations对象——修改state中的数据
    12. const mutations = {}
    13. //准备state对象——保存具体的数据
    14. const state = {}
    15. //创建并暴露store
    16. export default new Vuex.Store({
    17. actions,
    18. mutations,
    19. state
    20. })
    21. 2. 在 main.js 中创建vm时传入 store 配置项
    22. //引入store
    23. import store from '.ore'
    24. //创建vm
    25. new Vue({
    26. el:'#app',
    27. render: h => h(App),
    28. store
    29. })

    2)vuex有哪几种属性?

    有五种,分别是 State、 Getter、Mutation 、Action、 Module。

    1. 4.基本使用
    2. 1. 初始化数据、配置 actions 、配置 mutations ,操作文件 store.js
    3. //引入Vue核心库
    4. import Vue from 'vue'
    5. //引入Vuex
    6. import Vuex from 'vuex'
    7. //引用Vuex
    8. Vue.use(Vuex)
    9. const actions = {
    10. //响应组件中加的动作
    11. jia(context,value){
    12. // console.log('actions中的jia被调用了',miniStore即context,value)
    13. context.commit('JIA',value)
    14. },
    15. }
    16. const mutations = {
    17. //执行加
    18. JIA(state,value){
    19. // console.log('mutations中的JIA被调用了',state,value)
    20. state.sum += value
    21. }
    22. }
    23. //初始化数据
    24. const state = {
    25. sum:0
    26. }
    27. //创建并暴露store
    28. export default new Vuex.Store({
    29. actions,
    30. mutations,
    31. state,
    32. })

    3) vuex的State特性

    Vuex就是一个仓库,仓库里面放了很多对象。其中state就是数据源存放地,对应于一般Vue对象里面的data。

    state里面存放的数据是响应式的,Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新。

    通过mapState把全局 state 和 getters 映射到当前组件的 computed 计算属性中。

    4)vuex的Getter特性

    getters 可以对State进行计算操作,它就是Store的计算属性。

    虽然在组件内也可以做计算属性,但是getters 可以在多组件之间复用。

    如果一个状态只在一个组件内使用,可以不用getters。

    5)vuex的Mutation特性

    Action 类似于 mutation,不同在于:Action 提交的是 mutation,而不是直接变更状态;Action 可以包含任意异步操作。

    6)不用Vuex会带来什么问题?

    可维护性会下降,想修改数据要维护三个地方;

    可读性会下降,因为一个组件里的数据,根本就看不出来是从哪来的;

    增加耦合,大量的上传派发,会让耦合性大大增加,Vue用Component本意就是为了减少耦合,现在这么用,和组件化的初衷相背。

  • 相关阅读:
    Java入门第116课——向List中插入和删除元素
    TS的内置对象
    spring boot零配置
    公司如何禁止拷贝文件
    如何快速搞定一篇期刊论文
    day45
    vue-:visible.sync的作用
    大前端进阶:vue
    【热门话题】Stable Diffusion:本地部署教程
    PXE高效批量网络装机
  • 原文地址:https://blog.csdn.net/csdssdn/article/details/125533559