• vuex学习记录


    为什么要用vuex

    由于vue本身的特点。及页面是由多个组件构成。而组件又呈现一个二叉树状态。然后父向子需要进行通信。那如果是非父子关系,应该如何传值呢?

    什么是vuex

    专门为vue.js应用程序开发的状态管理模式。它采用集中式存储管理数据,以相应的规则保证状态以一种可预测的方式发生变化。
    在这里插入图片描述

    为什么使用vuex

    1.不同组件数据保持同步;
    2.数据的修改都是可追踪;

    vuex中存什么

    1.多个组件共享状态,才存储在vuex中;某个组件中的私有数据,依旧存储在data中。
    举例:登录的用户名需要在首页、个人中心、结算页面使用。这时用户名应该存在vuex中。

    总结

    1.vuex是集中式状态管理机制;
    2.用于数据同步,集中管理;
    3.存储多个组件共享的值

    vuex学习内容

    1.state:单一状态树,类似data;
    2.mutations:数据管家(同步),唯一修改state地方;
    3.actions:异步请求,要改state需要提交给mutations;
    4.getters:计算属性,类似computed;
    5.modules:模块拆分。
    在这里插入图片描述

    项目实践

    1.创建项目;
    2.vuex-store准备;
    2.1创建store仓库,注入到vue项目中
    2.2下载vuex,npm add vuex@3.6.2
    2.3src下新建一个文件夹,store,store文件夹下新建index.js
    在这里插入图片描述
    2.4main.js中进行挂载vuex
    在这里插入图片描述
    2.5vuex中的state
    state是唯一的公共数据源,统一存储。
    定义state
    在这里插入图片描述
    直接使用state
    在这里插入图片描述

    <template>
      <div id="app">
        <h1>根组件h1>
        <span>库存总数span>
        
        <input type="text" v-model="num" />
        <div style="border:1px solid black;width:300px;">
          <add-item>add-item>
        div>
        <hr />
        <div style="border:1px solid black;width:300px;">
          <subItem>subItem>
        div>
      div>
    template>
    <script>
    import AddItem from '@/components/AddItem'
    import SubItem from '@/components/SubItem'
    import { get } from 'http';
    export default {
      // 小知识点:data函数执行,才给this身上添加data函数return对象里属性
      // 所以在里边this.a或this.b都是访问不到值的,没挂载,那这个时候访问到的就是undefined
      // 记住:不要在data函数里写this
      name: 'app',
      data() {
        return {
          a: 10,
          b: 20,
        }
      },
      components: {
        AddItem,
        SubItem
      },
      computed: {
        num: {
          set(val) { },
          get() {
            return this.$store.state.count
          }
        }
      }
    
    }
    script>
    
    <style>
    #app {
      width: 300px;
      margin: 20px auto;
      border: 1px solid #ccc;
      padding: 4px;
    }
    style>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    映射使用state
    在这里插入图片描述
    2.6vuex中的mutations
    数据管家,操作state里的数据。
    在这里插入图片描述
    mutations直接使用
    在这里插入图片描述

    mutations映射使用
    在这里插入图片描述
    2.7vuex中的actions
    在这里插入图片描述
    actions直接使用

    在这里插入图片描述
    actions映射使用
    在这里插入图片描述

  • 相关阅读:
    数据结构和算法(15):排序
    karmada v1.7.0安装指导
    设计模式——3. 抽象工厂模式
    PyCharm玩转ESP32
    Java面向对象
    Android 11判断应用已安装坑点
    元素的盒子模型+标签的尺寸大小和偏移量+获取页面滚动距离+JS直接修改标签样式 + 让页面滚动到指定位置
    Class 类
    Linux任务调度
    Autosar MCAL软件架构基本概念
  • 原文地址:https://blog.csdn.net/dadati/article/details/128166188