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

yizhihongxing

快速掌握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项目实战总结篇

    Vue项目实战总结篇 总述 本文介绍了Vue项目的实战总结,包括项目的搭建、组件的编写、路由的配置以及API的获取处理等方面。项目通过一个在线购物网站的实例来展示Vue框架在实战应用中的优雅与高效。 项目搭建 在项目搭建方面,我们可以使用Vue CLI工具来快速生成项目框架。具体步骤如下: 安装Vue CLI,可以使用命令 npm install -g @v…

    Vue 2023年5月28日
    00
  • Vue项目中最新用到的一些实用小技巧

    接下来我将向你介绍Vue项目中最新用到的一些实用小技巧。 1. 使用.sync修饰符简化父子组件通信 在Vue中,组件之间的通信非常重要。在父子组件之间通信时,父组件传递数据给子组件是很常见的一种情况。我们通常会使用props来传递数据,并且在子组件中通过$emit来触发父组件中的方法来达到通信的目的。但是,这种方法不太方便,因为在父组件中需要手动监听$em…

    Vue 2023年5月28日
    00
  • Vue发布项目实例讲解

    下面就为大家详细介绍一下Vue发布项目的完整攻略。 1. 打包项目 在Vue项目开发完成后,需要将项目进行打包。Vue提供了一个命令行工具Vue CLI,可以使用Vue CLI将项目进行打包。 首先需要安装Vue CLI,可以在命令行中输入以下命令进行安装: npm install -g @vue/cli 安装完成后,在命令行中进入到项目根目录,使用以下命令…

    Vue 2023年5月28日
    00
  • Vue.js学习之计算属性

    下面是关于”Vue.js学习之计算属性”的完整攻略。 什么是计算属性 在Vue.js中,我们经常需要根据已经存在的数据,通过一些复杂的逻辑计算出新的值,然后再去渲染页面。 Vue.js提供了计算属性(computed)来方便我们实现这个需求。计算属性本质上是一个方法,它可以接收已经存在的数据为参数,然后根据这些数据进行计算,最终返回一个新的值。 一个计算属性…

    Vue 2023年5月27日
    00
  • Vue3 Vant组件库使用过程中的避坑点

    下面是详细讲解Vue3 Vant组件库使用过程中的避坑点的完整攻略: 1. 导入组件时注意组件名称 在使用Vant组件库时,要注意组件名称的大小写问题。在Vue3中,组件名称必须采用小写字母加横线的形式。而在Vant组件库中,组件名称采用的是带有大写字母的驼峰式命名。这就需要我们在使用Vant组件时进行一些转换。 例如,在使用Tab栏组件时,如果我们想使用命…

    Vue 2023年5月29日
    00
  • antd vue 表格rowSelection选择框功能的使用方式

    关于“antd vue 表格rowSelection选择框功能的使用方式”,以下是详细的攻略: 1. 引入antd vue表格和rowSelection 首先,我们需要在代码中引入antd vue表格和rowSelection选择框,具体方法如下: <template> <a-table :columns="columns&quo…

    Vue 2023年5月29日
    00
  • vue简单练习 桌面时钟的实现代码实例

    下面是关于“vue简单练习 桌面时钟的实现代码实例”的完整攻略。 一、实现时钟的HTML结构 首先,我们需要在HTML中添加一个 元素,用来展示时钟: <div id="app"> <h1>Vue 时钟</h1> <div class="clock"> <span …

    Vue 2023年5月29日
    00
  • vue项目查看vue版本及cli版本的实现方式

    要查看Vue版本以及CLI版本,需要在控制台中使用命令来完成。下面是具体的步骤和示例: 步骤1:查看Vue版本 在控制台中运行以下命令: vue –version 在命令行中,你应该看到Vue的版本号。例如: Vue CLI 4.2.3 这意味着你正在使用Vue CLI4的最新版本。 步骤2:查看CLI版本 在控制台中运行以下命令: vue info 这将…

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