Vuex--全局共享数据

目录

一 是什么?

二 怎么用?

三 注意点


一 是什么?

在此之前,我们使用vue的数据全部放在每个组件的data区域里面,这里return里面存的都是这个组件要用到的数据,但是这里面的数据是局部的数据,也就是说这些数据是这个组件专用的,其他组件是用不了它的数据的。

但是,为了方便,我么往往多个组件需要共享一些数据,所以vuex的作用就是用于存放一些公共数据,这样所有的组件都可以往这里面取需要的数据。

二 怎么用?

① 终端下载vuex

② 在main.js文件中导入并且挂载store

③ 创建一个文件夹store,在该文件夹下面创建一个index.js文件

④ 在index.js文件中定义相关数据并且暴露store(这里提供一个相关模板)

// 导入函数
import { createStore } from "vuex";

// 定义一个状态
const state = {
    count:0,
    user:{
        id:0,
        username:'张三',
        age:13
    }
}

// 修改状态的函数集合 , 不能异步调用
const mutations = {
    addCount(state,payload){
        // 修改state里面的count状态
        state.count+=payload.num ; 
    }
}

// actons : 操作函数集合(定义事件,让组件触发事件)
const actions = {
    increment(context,payload){
        // 发送ajax请求,异步通信
        // 它只能调用mutations里面的方法才能修改数据,三个核心对象各司其职(主要是因为mutation不能异步调用,而actions可以,所以我们用actions去调用mutations)
        context.commit('addCount' , payload)
    }
}

// 调用createStore创建Store对象
const store = createStore({
    state , 
    mutations,
    actions
})

// 暴露store对象
export default store  //把它挂在到mian.js中去,就可以全局使用它

⑤ 引入并且修改相关数据实现代码步骤:

1.先引入vuex中的数据count , 这就已经可以直接获取到数据了

2.再定义一个按钮,绑定一个方法,用于实现对count这个数据的修改

3.定义add函数,调用vuex里面的store里面对应的函数

4.在去store里面定义相对应的函数addcrement函数

5.继续定义上一层mutations集合里面对应的addCount函数

6.最后获取state里面定义的数据count,并且做相关操作

最后就可以实现获取到vuex里面的公共数据count,并且实现每次点击按钮修改count数据加一

三 注意点

1.其实mutations集合可以直接修改数据,我们也可以通过”this.$store.commit()“方法直接调用mutations集合里面的方法,之所以要通过store里面的方法去调用,是因为store支持异步调用,所以一般先调用store。

2. 我们也可以通过下面这种方法获取vuex中的数据,同时放在事件属性中。通过{{count}}直接得到数据,同时实现对数据count的监听

相关推荐

  1. 微信小程序全局数据共享

    2024-07-19 11:20:03       39 阅读
  2. 小程序 全局数据共享 getApp()

    2024-07-19 11:20:03       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 11:20:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 11:20:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 11:20:03       58 阅读
  4. Python语言-面向对象

    2024-07-19 11:20:03       69 阅读

热门阅读

  1. sklearn基础教程

    2024-07-19 11:20:03       18 阅读
  2. codeforces round 941div2(a,b,c)

    2024-07-19 11:20:03       21 阅读
  3. C++中传递指针和传递引用应用场合的区别

    2024-07-19 11:20:03       15 阅读
  4. Vue项目的构建方式

    2024-07-19 11:20:03       22 阅读
  5. 【算法】数组中的第K个最大元素

    2024-07-19 11:20:03       22 阅读
  6. AI一点通:向量数据库FAISS 平均延迟的测量

    2024-07-19 11:20:03       21 阅读
  7. Jenkins及其相关插件的具体流程

    2024-07-19 11:20:03       25 阅读
  8. 字母的大小写转换

    2024-07-19 11:20:03       19 阅读
  9. 第13章 专业英语

    2024-07-19 11:20:03       20 阅读