快速掌握Vue3.0中如何上手Vuex状态管理

快速掌握Vue3.0中如何上手Vuex状态管理

在Vue 3.0 中使用Vuex状态管理有以下步骤:

第一步:安装 Vuex

使用npm或yarn进行安装:

// npm
npm install vuex@next

// yarn
yarn add vuex@next

第二步:创建store

创建一个store.js文件来管理你的状态管理:

import { createStore } from 'vuex';

const store = createStore({
  state() {
    return {
      // example of a state property
      count: 0
    }
  }
});

export default store;

第三步:将store绑定至Vue根实例

导入store.js并绑定便可:

import { createApp } from 'vue';
import App from './App.vue';
import store from './store';

const app = createApp(App)
app.use(store)
app.mount('#app')

第四步:调用store中的数据

使用 computed 属性来访问我们的 state

<template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script>
import { computed } from 'vue';

export default {
  name: 'Counter',
  computed: {
    count() {
      return this.$store.state.count;
    }
  },
  methods: {
    increment() {
      this.$store.commit('increment');
    }
  },
};
</script>

我们使用 $store.state.count 来访问count的值,并使用 $store.commit来提交我们的更新。

第五步:修改store中的数据

我们通过 commit 方法可以修改store中的数据:

const store = createStore({
  state() {
    return {
      count: 0
    }
  },
  mutations: {
    increment(state) {
      state.count++
    }
  }
})

mutations中的函数接收的第一个参数即为我们的state对象,我们修改state的值即可。

示例演示

下面我们来演示一下在购物车应用中如何应用Vuex状态管理:

第一步:安装 Vuex

使用npm或yarn进行安装:

// npm
npm install vuex@next

// yarn
yarn add vuex@next

第二步:创建store

我们的store.json文件内容如下, 模拟一个简单的购物车:

import { createStore } from 'vuex';

const store = createStore({
  state() {
    return {
      cart: [],
    };
  },
  mutations: {
    addToCart(state, item) {
      state.cart.push(item);
    },
    removeFromCart(state, index) {
      state.cart.splice(index, 1);
    },
  },
});

export default store;

第三步:将store绑定至Vue根实例

导入store.js并绑定便可:

import { createApp } from 'vue';
import App from './App.vue';
import store from './store';

const app = createApp(App)
app.use(store)
app.mount('#app')

第四步:调用store中的数据

我们使用 $store.state.cart.length 来获取购物车中物品的数量,使用 v-for 渲染所有的购物车物品:

<template>
  <div>
    <h2>Cart ({{ $store.state.cart.length }} items)</h2>
    <ul>
      <li v-for="(item, index) in $store.state.cart" :key="index">
        {{ item.name }} - {{ item.price }}
        <button @click.prevent="removeFromCart(index)">Remove</button>
      </li>
    </ul>
  </div>
</template>

<script>
import { computed } from 'vue';

export default {
  name: 'Cart',
  methods: {
    removeFromCart(index) {
      this.$store.commit('removeFromCart', index);
    },
  },
};
</script>

通过 $store.state.cart 属性即可获取购物车中所有的物品,使用 v-for 渲染出来。

第五步:修改store中的数据

我们可以通过 commit 方法来添加/删除物品:

<template>
  <div>
    <h2>Products</h2>
    <ul>
      <li v-for="(item, index) in products" :key="index">
        {{ item.name }} - {{ item.price }}
        <button @click.prevent="addToCart(item)">Add to Cart</button>
      </li>
    </ul>
  </div>
</template>

<script>
import { computed } from 'vue';

export default {
  name: 'Products',
  data() {
    return {
      products: [
        {
          name: 'Product One',
          price: 12.99,
        },
        {
          name: 'Product Two',
          price: 6.99,
        },
        {
          name: 'Product Three',
          price: 24.99,
        },
      ],
    };
  },
  methods: {
    addToCart(item) {
      this.$store.commit('addToCart', item);
    },
  },
};
</script>

通过 $store.commit('addToCart', item) 方法即可将当前商品添加到购物车中,通过 $store.commit('removeFromCart', index) 删除指定的商品。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:快速掌握Vue3.0中如何上手Vuex状态管理 - Python技术站

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

相关文章

  • 使用vue插件axios传数据的Content-Type及格式问题详解

    使用Vue插件axios传送数据时,我们需要了解有关Content-Type的知识。Content-Type是HTTP头部中的一个域,表示发送数据的媒体类型和字符集。在传送数据时,我们需要根据接受方所期望的Content-Type的类型,构造对应的数据格式来传输数据。 简单来说,如果请求的Content-Type为‘application/json’, 则P…

    Vue 2023年5月28日
    00
  • Vue中导入excel文件的两种方式及使用步骤

    下面是“Vue中导入Excel文件的两种方式及使用步骤”的完整攻略。 方式一:使用ExcelJS库 ExcelJS是处理Excel文件的JavaScript库,可以在Vue中使用它来导入Excel文件。 步骤一:安装ExcelJS npm install exceljs –save 步骤二:引入ExcelJS import ExcelJS from ‘ex…

    Vue 2023年5月28日
    00
  • vuex state中的数组变化监听实例

    关于Vuex state中的数组变化监听,可以使用Vue提供的watch方法监听数组变化。 先来简单介绍一下实现的方法: 在state定义的数组数据前加上$符号,例如:$list 监听数据的方式:    // 监听数据变化    watch: {        ‘$store.state.list’: {            handler: functi…

    Vue 2023年5月29日
    00
  • vue项目中的支付功能实现(微信支付和支付宝支付)

    下面是关于Vue项目中实现微信支付和支付宝支付的完整攻略。 简介 在Vue项目中需要实现支付功能,常见的方式有微信支付和支付宝支付。微信支付目前还需要申请微信支付商户号,而支付宝支付可以使用支付宝开放平台提供的接口实现。 在项目中可以将支付功能实现为一个组件,以便在需要支付的地方引入使用。 微信支付 微信支付需要完成以下步骤: 申请微信支付商户号; 在项目中…

    Vue 2023年5月27日
    00
  • VUE搭建分布式医疗挂号系统后台管理页面示例步骤

    以下是针对 “VUE搭建分布式医疗挂号系统后台管理页面” 的完整攻略,具体步骤如下: 1. 创建Vue项目 首先,我们需要使用Vue CLI来创建一个Vue项目。在命令行中输入以下命令: vue create medical-admin 这将创建一个名为 medical-admin 的项目,并安装Vue的依赖项。 2. 安装Element UI库 由于我们将…

    Vue 2023年5月28日
    00
  • 如何在 Vue 中使用 Axios 异步请求API

    下面我来详细讲解一下如何在 Vue 中使用 Axios 异步请求 API 的完整攻略。 1. 安装 Axios 在使用 Axios 之前,我们需要先安装它。可以通过 npm 安装: npm install axios –save 或者通过 yarn 安装: yarn add axios 2. 在 Vue 中使用 Axios 在 Vue 中使用 Axios …

    Vue 2023年5月28日
    00
  • Uniapp全局消息提示以及其组件的实现方法

    Uniapp是一个跨端开发框架,使得我们可以非常方便地开发和部署多种移动端应用。在开发移动应用时,全局消息提示是一个必不可少的功能,这可以让用户在操作后接收到系统的反馈以便更好地交互。 Uniapp提供了一个uni.showToast()的API方法,可以让我们在全局范围内显示消息提示。下面是如何使用该API的方法: uni.showToast({ titl…

    Vue 2023年5月28日
    00
  • vue中jsonp的使用方法

    当前主流的前端框架之一就是Vue.js。在使用Vue.js时,有时我们需要使用JSONP(JSON with Padding)来解决跨域请求的问题。以下是关于Vue中JSONP的使用方法的完整攻略。 什么是JSONP? JSONP是一种跨域的请求方式。它通过动态添加<script>标签来实现跨域请求数据的方法。JSONP的实现过程如下: 在客户端…

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