vuex的几个属性及其使用传参方式

好的!下面是有关Vuex的属性及其使用方法的详细攻略。

Vuex属性

  1. State - 状态属性

State是Vuex中存放数据的地方。它的作用是承载用户数据及当前应用的状态信息。在组件中通过$store.state来获取数据。

  1. Getter - 获取属性

Getter是vuex中用于从状态层中获取数据的函数。Getter可以对State中的数据进行二次处理后再返回。在组件中通过$store.getters来访问Getter。

  1. Mutation - 修改数据

Mutation是vuex中用于变更状态的函数方法。它们必须是同步函数,因为在使用Vue Devtools调试时可以跟踪Mutation的每个状态变化。在组件中通过$store.commit来触发Mutation。

  1. Action - 状态操作

Action是vuex中用于提交Mutation的异步函数。Action可以封装复杂的异步操作并提交Mutation来变更store中的状态。在组件中通过$store.dispatch来触发Action。

传参方式

  1. Getters传参

可以通过返回一个函数来实现对getter的传参访问。具体示例如下:

// store.js
const store = new Vuex.Store({
  state: {
    productList: [
      { name: 'iPhone X', price: 8099 },
      { name: '华为 Mate30 Pro', price: 5999 },
      { name: '小米 9', price: 2999 },
      { name: 'OPPO Find X2', price: 4999 }
    ]
  },
  getters: {
    getPriceByName: state => name => {
      return state.productList.find(item => item.name === name).price
    }
  }
})
// Price.vue
<script>
  export default {
    computed: {
      iPhoneXPrice () {
        return this.$store.getters.getPriceByName('iPhone X')
      }
    }
  }
</script>
  1. Actions传参

Actions 通过 context对象的 commit() 方法与 mutations 进行通信实现对状态的更新。类似于Mutation,Action也支持传递参数,但需要在 store 文件底部,通过[actionName(context, params)]的方式读取。具体示例如下:

// store.js
const store = new Vuex.Store({
  state: {
    productList: [
      { name: 'iPhone X', price: 8099 },
      { name: '华为 Mate30 Pro', price: 5999 },
      { name: '小米 9', price: 2999 },
      { name: 'OPPO Find X2', price: 4999 }
    ]
  },
  actions: {
    updateProductName (context, params) {
      context.commit('updateProductName', params)
    }
  },
  mutations: {
    updateProductName (state, params) {
      state.productList.find(item => item.name === params.oldName).name = params.newName
    }
  }
})
// Product.vue
<script>
  export default {
    methods: {
      updateName () {
        this.$store.dispatch('updateProductName', { oldName: 'iPhone X', newName: '苹果 科技公司 iPhone X' })
      }
    }
  }
</script>

以上就是有关Vuex属性的详细说明以及两条传参示例。希望对您有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vuex的几个属性及其使用传参方式 - Python技术站

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

相关文章

  • vue实现动态路由详细

    下面是关于“Vue实现动态路由详细”的完整攻略: 简介 Vue.js 是一套构建用户界面的渐进式框架,而动态路由是其中的一个非常实用的功能,它可以根据不同的参数动态的切换视图,从而达到更好的用户体验。 实现步骤 实现动态路由主要包括以下几个步骤: 配置路由参数 根据路由参数渲染页面 动态设置路由 配置路由参数 Vue 实现动态路由的第一步是配置路由参数,我们…

    Vue 2023年5月29日
    00
  • 基于mpvue的小程序项目搭建的步骤

    下面就给你讲解一下“基于mpvue的小程序项目搭建的步骤”的完整攻略。 1. 环境准备 首先我们需要确保自己的环境已经准备好,包括: Node.js 环境(建议版本 v10.x 或以上) 小程序开发工具(开发时用于预览和调试) 命令行工具(Windows 系统可以使用 PowerShell,macOS 和 Linux 系统自带终端) 安装好上述工具之后,我们…

    Vue 2023年5月27日
    00
  • Vue3插槽(slot)使用方法详解

    Vue3中插槽(slot)是指在组件内部定义好一些模板代码,并在组件使用时通过插槽嵌入到组件内部的技术。本文将详细讲解Vue3插槽的使用方法。 插槽的基本概念 插槽是Vue3中一个重要的特性,它允许组件与它的子组件在编译期间动态传递内容。在Vue2中,插槽分为具名插槽和匿名插槽两种,但在Vue3中只有一种插槽。一个基本的插槽包括两个部分:插槽定义和插槽内容。…

    Vue 2023年5月28日
    00
  • 教你使用vue3写Json-Preview的示例代码

    下面是关于“教你使用vue3写Json-Preview的示例代码”的完整攻略,包括两条示例说明。 什么是Json-Preview Json-Preview是一种用于显示json数据的工具,常用于数据展示和调试中,可以将复杂的json数据以树形结构的形式展现出来。 使用vue3编写Json-Preview的步骤 1.创建一个vue3项目 使用Vue CLI创建…

    Vue 2023年5月28日
    00
  • vue引入iconfont图标库的优雅实战记录

    下面为你介绍如何优雅地在Vue中引入Iconfont图标库。 1. 注册Iconfont账号并创建项目 首先,在Iconfont官网上注册一个账号,并创建一个项目。 2. 选择图标并添加至项目 在项目中选择需要使用的图标,并将其添加至项目。 3. 生成Font-class代码 选择添加至项目的图标后,在页面右上角点击“生成代码”按钮,选择“Font-clas…

    Vue 2023年5月27日
    00
  • ES6中的class是如何实现的(附Babel编译的ES5代码详解)

    下面是详细讲解 “ES6中的class是如何实现的(附Babel编译的ES5代码详解)” 的攻略。 前言 ES6中的class是一种新的语法糖,它提供了一种更简单、更语义化的方式来声明类,让编写面向对象代码更加方便。本文将介绍class的语法和原理,并附上Babel编译后的ES5代码做详解。 class语法 首先我们来看一下class的语法: class P…

    Vue 2023年5月28日
    00
  • Vue实现页面添加水印功能

    下面我来详细讲解一下“Vue实现页面添加水印功能”的完整攻略。 步骤一:安装依赖 首先需要安装一个npm包,名为watermark-dom,这个包可以用来在DOM元素上添加水印。通过以下命令安装: npm install watermark-dom –save 步骤二:创建组件 接下来需要创建一个组件,可以称之为Watermark,表示页面上添加水印的区域…

    Vue 2023年5月28日
    00
  • vue 在服务器端直接修改请求的接口地址

    为了实现“vue 在服务器端直接修改请求的接口地址”,我们需要将客户端(浏览器端)和服务器端的配置进行调整。具体的步骤如下: 1. 在客户端(浏览器端)进行配置 首先,在 vue.config.js(如果没有则需要创建) 中配置 devServer 选项: module.exports = { devServer: { proxy: { // 将URL中的 …

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