vuex前端开发,getters是什么?怎么调用?简单的案例操作

这篇具有很好参考价值的文章主要介绍了vuex前端开发,getters是什么?怎么调用?简单的案例操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vuex前端开发,getters是什么?怎么调用?简单的案例操作!

下面通过一些简单的案例,来了解一下,vuex当中的getters到底是什么意思,有哪些实际的操作案例。


Vuex的getters主要用于对store中的state进行计算或过滤,类似于Vue组件中的计算属性。它可以对state进行一些处理,然后返回一个新的值,供组件使用。

使用getters的好处有:

  1. 可以将一些常用的计算逻辑封装在getters中,避免在多个组件中重复编写相同的计算代码。
  2. getters可以缓存计算结果,只有当依赖的state发生变化时,才会重新计算,提高性能。
  3. getters可以接收其他getters作为参数,可以实现对多个状态的联合计算

// 在store/index.js中定义getters
const store = new Vuex.Store({
  state: {
    todos: [
      { id: 1, text: 'Learn Vue', done: true },
      { id: 2, text: 'Build an app', done: false },
      { id: 3, text: 'Deploy to production', done: false }
    ]
  },
  getters: {
    // 计算未完成的任务数量
    unfinishedCount: state => {
      return state.todos.filter(todo => !todo.done).length;
    },
    // 获取所有已完成的任务
    completedTodos: state => {
      return state.todos.filter(todo => todo.done);
    }
  }
});

// 在组件中使用getters
export default {
  computed: {
    unfinishedCount() {
      return this.$store.getters.unfinishedCount;
    },
    completedTodos() {
      return this.$store.getters.completedTodos;
    }
  }
}

下面给大家看看我个人在本地测试的实际项目案例代码。

import './assets/main.css'

import { createApp } from 'vue'
import App from './App.vue'
import {createStore} from 'vuex'
const store =createStore({
    state(){
        return {
            count:1,
            str:'我是来自VUEX的',
            todos:[
                {id:1,text:'Learn Vue',done:true},
                {id:2,text:'Build an app',done:false},
                {id:3,text:'Deploy to production',done:false},
                {id:4,text:'write an website',done:true}
            ]
        }
    },
    getters:{
        //计算未完成的任务数量
        unfinishedCount: state => {
            return state.todos.filter(todo => !todo.done).length;
        },
        //获取所有已完成的任务
        completedTodos: state => {
            return state.todos.filter(todo => todo.done).length;
        }
    }

})


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

这个代码是来自main.js。里面我配置了一下store的基础数据情况。

里面有一个state,共享了一个数组。

还有一个getters属性,里面对外暴漏了2个函数。分别是统计未完成的任务数量,和已经完成的任务数量。


<template>
    <h3>todos-getters练习</h3>
    <p>未完成 的任务数:{{ unfinishedCount }}</p>
    <p>已完成的任务数:{{ completedTodos  }}</p>
</template>
<script>
    export default{
        data(){
            return{
                
            }
        },
        computed:{
           
         unfinishedCount(){
            return this.$store.getters.unfinishedCount;
         },
         completedTodos(){
            return this.$store.getters.completedTodos;
         }
    
        }
    }
</script>

这个我单独定义了一个组件,名字是Todos.vue。里面可以看见有计算属性。通过计算属性,可以调用到store里面的getters函数。这样用起来就会很方便了。

毕竟,getters诞生的本意,就是以为了让人们快速方便的操作共享数据的。

计算属性本身就是一个函数,只是它做了封装。使得一些较为复杂的数据逻辑计算,被封装成了一个函数的形式,对外调用的时候,也就显得较为简化了。如图,直接使用vue的插值运算符,就能调用计算属性了。这个就是计算属性的优势和便捷。


<template>
  <h3>vuex的基础使用</h3>
  <!-- <p>{{ $store.state.str }}</p> -->
  <Addtion />
  <Subtract />
  <Todos />
</template>
<script>
import Addtion from './components/Addtion.vue'
import Subtract from './components/Subtract.vue';
import Todos from './components/Todos.vue';
  export default{
    components:{
      Addtion,
      Subtract,
      Todos
    },
    data(){
      return{
        
      }
    }
    
  }
</script>

这个是入口文件app.vue的内容。我已经在app里面做了注册。可以让组件todos.vue正常显示。


vuex前端开发,getters是什么?怎么调用?简单的案例操作,vue,前端,javascript,开发语言

如图,可以看见,正确了获得了,已经完成 的任务数量,和未完成的任务数量。


vuex前端开发,getters是什么?怎么调用?简单的案例操作,vue,前端,javascript,开发语言

计算出来对结果是正确的。2个true,2个false.文章来源地址https://www.toymoban.com/news/detail-803009.html

到了这里,关于vuex前端开发,getters是什么?怎么调用?简单的案例操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Vuex状态管理】Vuex的基本使用;核心概念State、Getters、Mutations、Actions、Modules的基本使用

    在开发中,应用程序需要处理各种各样的数据,这些数据需要保存在应用程序中的某一个位置,对于这些数据的管理就称之为是 状态管理。 在前面是如何管理自己的状态呢? 在Vue开发中,使用组件化的开发方式; 而在组件中定义data或者在setup中返回使用的数据,这些数据称

    2024年02月07日
    浏览(45)
  • springboot项目开发,使用thymeleaf前端框架的简单案例

    springboot项目开发,使用thymeleaf前端框架的简单案例!我们看一下,如何在springboot项目里面简单的构建一个thymeleaf的前端页面。来完成动态数据的渲染效果。 第一步,我们在上一小节,已经提前预下载了对应的组件了。 如图,springboot的强大之处就在于,它有一套完整的版本依

    2024年01月25日
    浏览(37)
  • 【VUEX】state、mutations、actions、getters、modules以及辅助函数mapState和mapGetters

    Vuex 简介:vuex是vue.js的状态管理库 提供一种集中式存储管理应用程序中的所有组件的状态,并将其分离到一个可预测的状态容器中。 五个核心属性:state、mutations、actions、getters、modules 属性 作用 state 存放状态 (数据),所有组件共享 mutations 唯一可以修改state的地方, 改变

    2024年02月13日
    浏览(46)
  • Vuex中的States、Mutations、Actions、Getters、Modules、Plugins的作用(推荐使用版本)

    目录 一、State 二、Mutations 三、Actions 四、Getters 五、Modules 前提:state.js要引入,  下面我都省略了 所有共享数据都放到Store的state中存储 访问: 作用:修改Vuex中的全局数据 1、只能通过Mutation变更Store中的数据 2、操作有点繁琐,但可以集中监控所有数据变化 定义mutations: 组

    2024年02月05日
    浏览(38)
  • vuex是什么?怎么使用?哪种功能场景使用它?

    Vuex是Vue.js官方推荐的状态管理库,用于在Vue应用程序中管理和共享状态。它基于Flux架构和单向数据流的概念,将应用程序的状态集中管理,使得状态的变化更可追踪、更易于管理。Vuex提供了一个全局的状态树,以及一些用于修改状态的方法。 使用Vuex的一般步骤如下: 安装

    2024年01月17日
    浏览(58)
  • web开发中,简单的案例说明前端页面和后端以及mysql数据库的交互过程

            首先这是一个基于 web开发 的稿子,作者也是转java20天左右,以前也一直迷惑起那段页面是如何和后端进行交互,数据提交提交到了哪里?后端开发如何获取到前端提交的数据呢?后端数据提交到数据库中应该如何处理,接下来通过一个简单的例子,登录案例 (实

    2024年02月03日
    浏览(52)
  • YAPi在线接口文档简单案例(结合Vue前端Demo)

    在前后端分离开发中,我们都是基于文档进行开发,那前端人员有时候无法马上拿到后端的数据,该怎么办?我们一般采用mock模拟伪造数据直接进行测试,本篇文章主要介绍YApi在线接口文档的简单使用,并结合Vue的小demo,让你快速了解到前后端分离开发整体流程。 YApi 是高

    2024年02月07日
    浏览(47)
  • uniapp前端+python后端=微信小程序支付到底怎么开发???国内的资料为什么没一篇能讲清楚,简简单单的只需要3步就可以了-V2版本

    真的,在接到这个任务的时候,本以为很简单,不就是普通的浏览器复制粘贴,最不济找下gpt给生成一下,但是到实际开发就不同了,不是后端出问题就是前端,搜资料,上百度上google,基本每一个人讲的都不一样,不是这问题就是那问题,特别是微信官方,自己接口的逻辑

    2024年01月22日
    浏览(52)
  • Vuex的简介以及入门案例

    Vuex介绍 Vuex是一种状态管理模式,它专为Vue.js应用程序开发设计。使用Vuex能够更好地组织Vue.js应用中的代码,并使代码更容易理解和维护。 Vuex把应用的状态(数据)集中存储到一个全局的store对象中,并使用mutations(同步任务)和actions(异步任务)来修改状态。Vuex的数据流

    2024年02月07日
    浏览(36)
  • vuex中actions异步调用以及读取值

    提示:这里简述项目相关背景: 将根据segmentId查出来的合同信息托管到vuex中,让每个人都可以获取到合同信息 1:调用vuex异步函数的语法是 this.$store.dispatch(\\\'actions方法名\\\',值) 2:在computed(计算属性)中使用mapState语法糖 computed: {     ...mapState({       contractCode:state = state.c

    2024年02月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包