Vue3 computed初始化获取设置值实现示例

yizhihongxing

首先,让我们了解Vue3中computed的使用方式。 在Vue3中,computed不再是选项,它变成了函数。 计算属性的本质仍然是基于依赖项进行缓存的值,但现在您必须显式地自定义getter和setter函数。

创建Computed属性

要创建计算属性,请将一个函数传递给computed()函数。该函数被定义为getter函数,在计算属性的依赖项发生更改时,该getter函数会被重新计算。

下面是一个计算属性的示例代码:

import { computed } from 'vue'

const exampleValue = 2;
const computedValue = computed(() => {
  return exampleValue * 2;
})

console.log(computedValue.value) // 4

exampleValue = 4;
console.log(computedValue.value) // 8

在此示例中,我们创建了一个名为computedValue的计算属性,它的值是exampleValue的两倍。我们可以通过computedValue.value来访问该属性的值。 计算属性将保持更新,只要它所依赖的任何值发生更改。

computed属性的初始化

您可以在计算属性的getter函数中执行一次性初始化,来设置默认值。您可以这样实现:

import { computed } from 'vue'

const exampleValue = 2;
const computedValue = computed(() => {
  if (!computedValue.initialized) {
    computedValue.value = exampleValue * 2;
    computedValue.initialized = true;
  }
  return computedValue.value;
})

console.log(computedValue.value) // 4

exampleValue = 4;
console.log(computedValue.value) // 4

在这个例子中,我们在getter函数中添加了一个检查,以检查computed属性是否已经进行了初始化。 如果尚未进行初始化,则我们设置了computedValue.value的初始值,并将initialized设置为true。 在执行此操作后,我们仅返回computedValue.value的当前值

存在依赖项时computed属性的设置值实现

在Vue3中,使用计算属性的setter更新计算属性的值。 setter函数接收新的值并更新计算属性值。下面是一个计算属性的setter示例:

import { computed } from 'vue'

const exampleValue = 2;
const computedValue = computed({
  get: () => {
    return exampleValue * 2;
  },
  set: (newVal) => {
    exampleValue = newVal / 2;
  }
})

console.log(computedValue.value) // 4

computedValue.value = 8;
console.log(exampleValue) // 4

在此示例中,我们创建了一个名为computedValue的计算属性,它基于exampleValue的值。 setter函数被定义为将新值除以2的函数,以更新exampleValue

总结:

在Vue3中computed不再是选项,它变成了函数。计算属性的本质仍然是基于依赖项进行缓存的值,但现在您必须显式地自定义getter和setter函数。要创建计算属性,请将一个函数传递给computed()函数。计算属性将保持更新,只要它所依赖的任何值发生更改。您可以在计算属性的getter函数中执行一次性初始化,来设置默认值。setter函数接收新的值并更新计算属性值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue3 computed初始化获取设置值实现示例 - Python技术站

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

相关文章

  • vue踩坑记录:属性报undefined错误问题

    当你使用Vue.js构建自己的应用时,可能会遇到属性报undefined错误问题,这种问题会造成很大的困扰。下面让我们详细讲解一下怎么解决这个问题。 问题原因 首先我们需要明确这个错误的原因,常见的错误原因有以下几种: 将变量名写错了。 Vue组件的作用域问题。 Vue组件内部的变量和外部的变量命名冲突问题。 快速解决 如果您遇到属性报undefined错误…

    Vue 2023年5月27日
    00
  • electron实现静默打印的示例代码

    下面我来详细讲解一下如何使用Electron实现静默打印的示例代码,包括如何设置打印机、如何导出PDF、如何调用打印机等过程。 1. 设置打印机 在electron中实现静默打印首先需要设置打印机。可以通过Electron中的打印功能来获取电脑上所有的可用打印机。代码如下: const {BrowserWindow} = require(‘electron’…

    Vue 2023年5月28日
    00
  • Vue数组中出现__ob__:Observer无法取值问题的解决方法

    当我们在使用Vue时,有时候会遇到一个问题:当我们打印Vue数据中的数组时,会出现一条类似“ob:Observer”的信息,而我们想要的数据并没有被打印出来,这是为什么呢?这是因为Vue对于数据的观测,会将其转换为响应式数据,并在数据上挂载一个Observer对象,这个__ob__属性就是用来标识Observer对象的。为了解决这个问题,我们需要使用Vue提…

    Vue 2023年5月29日
    00
  • VUE的数据代理与事件详解

    VUE的数据代理与事件详解 数据代理 VUE中使用了 数据代理 的方式来进行数据绑定和更新。具体来说,当我们在VUE实例中的 data对象 上定义一个属性时,VUE会将该属性转化为getter和setter函数,并且将它们添加到VUE实例上。这样,每当我们通过VUE实例访问这个属性时,就会触发相应的getter或setter函数。 例如,我们在VUE实例中定…

    Vue 2023年5月28日
    00
  • 详解如何实现在Vue中导入Excel文件

    下面是如何在Vue中导入Excel文件的完整攻略: 1. 安装依赖 为了能够读取Excel文件,我们需要使用一个叫做xlsx的库。可以在终端中使用以下命令安装: npm install xlsx –save 2. 导入Excel文件 在Vue中,我们可以使用<input>标签实现文件上传。一般来说,我们会让用户选择一个Excel文件,然后把文件…

    Vue 2023年5月28日
    00
  • vue如何循环给对象赋值

    想要循环给对象赋值,可以使用Vue中的v-for指令来实现。v-for指令可以遍历一个数组或者一个对象中的所有元素,常用语渲染列表,也可以用于动态生成表单。 对于对象,v-for指令可以通过它的第二个参数,键名(key),来获取到对象的键名和键值。通过在模板中使用{ key, value } in object 表达式可以遍历对象。具体过程如下: 1.创建一…

    Vue 2023年5月28日
    00
  • 解析vue.js中常用v-指令

    当我们使用Vue.js进行开发的时候,v-指令是一个非常常见的用法。v-指令是Vue.js中属性绑定的一种方式。在这里,我们将详细介绍一些常见的v-指令。 v-bind指令 v-bind指令可以将Vue实例中的数据绑定到HTML元素的属性上。如果我们想将Vue实例中的url数据绑定到img标签中的src属性上,可以使用如下代码: <img v-bind…

    Vue 2023年5月28日
    00
  • 详解vue数据响应式原理之数组

    详解Vue数据响应式原理之数组 什么是Vue数据响应式? Vue.js是一款MVVM框架,它通过数据绑定和组件化来构建用户界面。Vue的核心是将DOM和数据进行绑定,当数据发生变化时,DOM会自动更新,这就是Vue的数据响应式。 数组响应式的特殊性 数组在JS中是引用类型,当我们对一个数组进行变更时,比如push、pop、splice等操作,Vue是无法检测…

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