Vue项目中使用vuex详解

yizhihongxing

Vue项目中使用vuex详解

什么是Vuex

Vuex是一个专为Vue.js应用程序开发的状态管理模式。 Vuex采用集中式存储管理应用的所有组件的状态,将组件的共享状态抽取出来,以一个全局单例模式管理。

安装

在vue-cli工具生成的项目中,使用以下命令安装vuex:

npm install vuex --save

状态管理

Vuex中最核心的概念就是“状态管理”,即应用程序的所有数据都保存在store中。

创建store

在main.js中创建store:

import Vue from 'vue'
import App from './App.vue'
import Vuex from 'vuex'

Vue.use(Vuex);

const store = new Vuex.Store({
  state: {
    count: 0
  },
  getters: {
    getCount: state => state.count
  },
  mutations: {
    incrementCount(state) {
      state.count++;
    }
  }
});

new Vue({
  store,
  render: h => h(App),
}).$mount('#app')

其中,state中保存了应用程序的所有数据,在这里只保存了一个计数器的初始值为0。mutations中定义了修改state中数据状态的方法,这里只定义了一个计数器加1的方法,即incrementCount。

使用store

在组件中使用store,可以用以下方式:

computed: {
  ...Vuex.mapGetters(['getCount'])
},
methods: {
  ...Vuex.mapMutations(['incrementCount'])
}

其中,...是ES6语法提供的对象扩展运算符,可以让我们在对象中使用另一个对象的属性和方法。

在组件的模板中可以这样使用:

<template>
  <div>
    {{ getCount }}
    <button @click="incrementCount()">+1</button>
  </div>
</template>

其中,getCount和incrementCount分别是Vuex中定义的getters和mutations。

辅助函数

除了使用对象扩展运算符,我们还可以使用Vuex提供的辅助函数来更方便地使用store。

mapGetters

mapGetters可以将store中的getters映射到组件的computed中。

import { mapGetters } from 'vuex'

computed: {
  ...mapGetters(['getCount'])
}

然后就可以在模板中使用getCount了。

mapMutations

mapMutations可以将store中的mutations映射到组件的methods中。

import { mapMutations } from 'vuex'

methods: {
  ...mapMutations(['incrementCount'])
}

然后就可以在模板中使用incrementCount了。

示例

一个使用辅助函数的示例:主要的代码在MyButton.vue中。

<template>
  <button @click="incrementCount">{{ getCount }}</button>
</template>

<script>
  import { mapGetters, mapMutations } from 'vuex'

  export default {
    computed: {
      ...mapGetters(['getCount'])
    },
    methods: {
      ...mapMutations(['incrementCount'])
    }
  }
</script>

在App.vue中引用:

<template>
  <div>
    <my-button></my-button>
    <my-button></my-button>
  </div>
</template>

<script>
  import MyButton from './MyButton.vue'

  export default {
    components: {
      MyButton
    }
  }
</script>

使用Vuex可以使得多个组件都可以访问到同一个state,从而实现数据的共享,这在有些场景下非常有用。
完整的代码可参考以下GitHub链接:
https://github.com/luolei07/Vuex-Demo

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue项目中使用vuex详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 分分钟学会vue中vuex的应用(入门教程)

    分分钟学会vue中vuex的应用(入门教程) 简介 Vuex是一个专门为Vue.js设计的状态管理库,它可以简化Vue.js应用程序中状态管理的开发流程,提高应用程序的性能和可维护性。 安装 Vuex可以通过npm进行安装,打开命令行界面并输入以下命令: npm install vuex 配置 在Vue.js应用程序中使用Vuex,需要依次执行以下步骤: 引…

    Vue 2023年5月27日
    00
  • vue实现pdf文档在线预览功能

    下面是详细的讲解“vue实现pdf文档在线预览功能”的完整攻略: 确认需求 在开始实现在线预览PDF文档的功能之前,我们需要确定需求。在本节中,我们需要考虑以下问题: 我们将使用哪个PDF库来解析和显示PDF文档? 我们将如何将PDF文档加载到我们的Vue应用程序中? 我们将如何实现PDF文档的渲染和导航? 选择PDF库 在Vue应用程序中实现PDF预览功能…

    Vue 2023年5月28日
    00
  • Vue如何通过浏览器控制台查看全局data值

    要通过浏览器控制台查看Vue全局data值,可以依次执行以下步骤: 步骤一:打开页面并打开控制台 首先,在浏览器中打开Vue页面,然后打开开发者工具(可以通过F12快捷键或右键菜单打开)。 步骤二:选择Vue实例 在控制台中输入以下代码,获取Vue实例: const vm = Vue.instance 步骤三:查看全局data值 有两种方法可以查看全局dat…

    Vue 2023年5月27日
    00
  • vue3中获取ref元素的几种方式总结

    下面我将为您详细讲解“vue3中获取ref元素的几种方式总结”的完整攻略。 vue3中获取ref元素的几种方式总结 在Vue 3中,ref是用来代替Vue 2中的$refs属性。使用ref可以获取到DOM元素或组件实例,以便于直接操作它们。下面是Vue3中获取ref元素的几种方式总结。 1. 使用template refs 在Vue 3中,template …

    Vue 2023年5月27日
    00
  • vue常用知识点整理

    Vue常用知识点整理 1. Vue实例 Vue实例是Vue的基本模块,用它来创建Vue应用。一个Vue应用可以有多个Vue实例。 创建Vue实例的语法如下: var vm = new Vue({ // 选项 }) 其中,vm 是Vue实例,选项包括 el, data, template 等等。 2. 数据绑定 Vue实现了双向数据绑定,当数据改变时,视图也会…

    Vue 2023年5月28日
    00
  • vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)

    下面就来详细讲解如何使用vue+canvas实现炫酷时钟效果的倒计时插件,让网站更加生动有趣。 准备工作 首先需要安装vue和canvas的依赖: npm install vue canvas –save 然后在vue的入口文件中引入canvas: import Vue from ‘vue’ import canvas from ‘canvas’ Vue.…

    Vue 2023年5月29日
    00
  • 十分钟封装一个好用的axios步骤示例

    下面我将详细讲解“十分钟封装一个好用的axios步骤示例”的完整攻略。 1. 引入axios 首先,我们需要在项目中引入axios,可以通过npm或者CDN的方式引入。比如,在Vue项目中,我们可以在main.js入口文件中引入axios: import axios from ‘axios’ Vue.prototype.$http = axios 这样就可以…

    Vue 2023年5月28日
    00
  • Vue组件生命周期运行原理解析

    Vue组件生命周期运行原理解析攻略 Vue.js是一款流行的JavaScript框架。组件是Vue.js的核心概念之一。Vue组件有自己的生命周期,Vue.js框架提供了一些回调函数接口,当组件的生命周期发生变化时,这些回调函数接口将会自动被触发。本篇攻略将详细介绍Vue组件生命周期的运行原理。 Vue组件生命周期介绍 Vue组件生命周期分为8个阶段: be…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部