详解Vue3 中的计算属性及侦听器

详解Vue3 中的计算属性及侦听器

计算属性

计算属性是Vue中一种非常常见的属性类型,可以根据其他数据的变化而自动更新。在Vue3中,计算属性的写法有所变化,需要使用computed方法来定义。

<template>
  <div>
    <p>商品价格: {{ price }}</p>
    <p>打折后价格: {{ discountPrice }}</p>
  </div>
</template>

<script>
import { computed } from 'vue'

export default {
  data() {
    return {
      originalPrice: 100,
      discount: 0.8
    }
  },
  computed: {
    price() {
      return this.originalPrice
    },
    discountPrice() {
      return this.price * this.discount
    }
  }
}
</script>

在上述示例中,我们定义了一个计算属性discountPrice,它依赖于pricediscount两个属性。当原价或折扣发生变化时,discountPrice会自动更新。

侦听器

侦听器用于监听某个属性的变化,并在变化时执行一些操作。在Vue3中,可以使用watch方法来实现侦听器。

<template>
  <div>
    <p>当前屏幕尺寸: {{ screenSize }}</p>
  </div>
</template>

<script>
import { watch, ref } from 'vue'

export default {
  setup() {
    const screenSize = ref('')
    watch(screenSize, (newVal, oldVal) => {
      console.log(`屏幕尺寸从${oldVal}变为${newVal}`)
    })
    window.addEventListener('resize', () => {
      screenSize.value = `${window.innerWidth}x${window.innerHeight}`
    })
    return {
      screenSize
    }
  }
}
</script>

在上述示例中,我们通过watch方法来监听一个名为screenSize的响应式变量。当该变量的值发生变化时,会自动调用回调函数并输出旧值和新值。同时,我们通过addEventListener监听窗口大小变化事件,当窗口大小发生变化时,会自动更新screenSize的值。由于screenSize是响应式变量,因此更新后会自动重新渲染视图,从而实现屏幕尺寸的实时更新。

总的来说,计算属性和侦听器都是Vue3中非常实用的功能,可以用于自动计算属性值和监听属性变化,并在变化时自动更新视图。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Vue3 中的计算属性及侦听器 - Python技术站

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

相关文章

  • vue 解决provide和inject响应的问题

    当使用Vue中的provide和inject API时,如果模板中的组件在provide对象中的属性发生变化时,如果没有使用Vue的响应式系统来触发变更,那么inject引入的属性也不会发生更新,因此需要使用Vue的$set方法来解决这个问题。 下面是使用Vue解决provide和inject响应的问题的攻略: 需要将provide的数据变成响应式数据,可以…

    Vue 2023年5月27日
    00
  • 在VUE style中使用data中的变量的方法

    在Vue的style中使用组件中的数据变量可以通过:style绑定对象来实现。具体方法如下: 定义组件时,定义组件中需要的数据变量 Vue.component(‘my-component’, { data: function () { return { color: ‘red’ } }, template: ‘<div :style="{ c…

    Vue 2023年5月29日
    00
  • vue中使用localstorage来存储页面信息

    当使用Vue构建单页应用程序时,使用localStorage来存储页面信息是一种常见的做法。localStorage是一个API,可以将数据永久存储在浏览器中,即使用户关闭了浏览器,数据也不会丢失。以下是Vue中使用localStorage来存储页面信息的完整攻略,包含两条示例说明。 使用localStorage存储数据 要在Vue中使用localStora…

    Vue 2023年5月28日
    00
  • 在vscode中统一vue编码风格的方法

    在VSCode中统一Vue编码风格是一个很好的实践,可以方便多人协作开发以及代码更加整洁和易于维护。以下是完整的攻略: 步骤一:安装Vue CLI Vue CLI是一个官方命令行工具,可以帮助我们快速搭建Vue项目,并集成了ESLint等工具,可以帮助我们统一代码风格。Vue CLI的安装方法可以参考Vue官方文档。 步骤二:初始化项目 安装好Vue CLI…

    Vue 2023年5月27日
    00
  • vue3+vite2中使用svg的方法详解(亲测可用)

    下面是详细讲解“vue3+vite2中使用svg的方法详解(亲测可用)”的完整攻略。 一、前言 在前端开发中,常常需要使用图片来进行页面的美化,而其中一类图片是矢量图形,例如SVG。在使用Vue3 + Vite2进行开发时,使用SVG可以更加方便灵活地进行页面布局和图形展示。本文将详细讲解在Vue3 + Vite2中使用SVG的方法。 二、在Vue3中进行S…

    Vue 2023年5月29日
    00
  • vue获取验证码倒计时组件

    下面就让我来详细讲解一下 “Vue获取验证码倒计时组件” 的完整攻略。 一、需求分析 在现代应用程序中,验证码是非常重要的。 许多应用程序需要验证码以增加安全性。因此需要一个验证码组件,这个组件的功能应该是根据用户点击发送验证码按钮时,开始倒计时,在倒计时结束之前,用户不能再次发送验证码,同时按钮的文本要实时更新显示倒计时。 二、技术选型 在Vue.js中可…

    Vue 2023年5月29日
    00
  • 微信js-sdk地理位置接口用法示例

    下面我会分为几个部分讲解“微信js-sdk地理位置接口用法示例”的完整攻略。 一、前置条件 在使用微信js-sdk地理位置接口之前,需要确保以下几个条件已经满足: 已经在微信公众平台中配置了JS接口安全域名。 已经在页面中引入微信公众平台提供的js文件(如:http://res.wx.qq.com/open/js/jweixin-1.4.0.js)。 已经申…

    Vue 2023年5月28日
    00
  • Vue 2.0学习笔记之Vue中的computed属性

    下面我将为你详细讲解“Vue 2.0学习笔记之Vue中的computed属性”的完整攻略。 什么是computed属性 在Vue组件中,数据是驱动视图变化的,我们可以通过绑定数据到视图的方式达到数据驱动视图的目的。但是,有时候我们需要通过一些计算规则得到一些派生数据来执行视图渲染,此时我们就可以使用computed属性。computed属性可以将计算属性绑定…

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