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

yizhihongxing

详解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中导出Excel表格的实现代码

    下面是详细讲解如何在Vue中实现导出Excel表格的步骤。 1. 安装相关插件 要在Vue中导出Excel表格,需要安装以下插件: xlsx: 用于构建Excel文件。 file-saver: 用于提供文件下载功能。 在项目的根目录下使用npm进行安装: npm install xlsx file-saver –save 2. 编写导出方法 在Vue的组件…

    Vue 2023年5月27日
    00
  • web前端vue实现插值文本和输出原始html

    要实现通过Vue进行插值文本和输出原始HTML,我们需要掌握以下几个核心概念: 插值表达式:Vue使用双括号{{}}进行插值,将绑定的数据渲染到模板中。 v-html指令:Vue中的v-html指令可用于输出被渲染为HTML的数据,但要注意防止XSS攻击。 以下是详细步骤: 1. 插值表达式 在Vue中,我们可以使用插值表达式来动态地将数据展示到模板中。插值…

    Vue 2023年5月28日
    00
  • vue2之vue.config.js最全配置教程

    下面就详细讲解一下 “vue2之vue.config.js最全配置教程”的完整攻略。 简介 vue.config.js 是 Vue CLI 3.x 中一个重要的配置文件,用于对项目进行全局的配置。这个文件不存在,需要手动创建,与 package.json 文件同级。通过 vue.config.js 文件的配置,我们可以实现很多高级功能,例如 Webpack …

    Vue 2023年5月27日
    00
  • vue.js的状态管理vuex中store的使用详解

    Vue.js的状态管理:Vuex中store的使用详解 在大型Vue.js应用程序中,管理组件之间的状态可能会变得异常困难。为了解决这个问题,Vue.js提供了一个专门的状态管理库——Vuex。 在Vuex中,store是状态集合,包含了你的应用程序中所有组件的状态。store使用一个单一的数据源来管理组件之间的通讯,其中的数据可以在整个应用程序中被访问和修…

    Vue 2023年5月27日
    00
  • vue事件监听函数on中的this指针域使用

    当在Vue组件中定义事件监听函数on时,this指针的使用是一个经常来引起困扰的问题。在Vue中,this指向的上下文会在函数被触发时发生变化,这取决于一些因素,包括函数是否使用了箭头函数、函数是如何被触发的以及我们如何向它传参。 下面是一些在Vue事件监听函数中正确使用this指针的方法: 1. 使用箭头函数 箭头函数的一个重要特征是它不绑定this指向,…

    Vue 2023年5月28日
    00
  • element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】

    下面就针对题目中所涉及的内容进行详细介绍。 Element UI中的表单验证 Element UI提供了简单易用的表单验证功能。在Vue项目中使用Element UI时,可以通过对Element UI的form组件进行配置,来实现表单的验证功能。 验证名称重复 在表单验证过程中,可能会遇到需要验证某个字段的值是否与数据库中已有的值重复的情况。此时,可以通过自…

    Vue 2023年5月27日
    00
  • vue.js 双层嵌套for遍历的方法详解, 类似php foreach()

    下面让我详细讲解“vue.js 双层嵌套for遍历的方法详解, 类似php foreach()”的完整攻略。 前言 在使用 Vue.js 时,经常需要做列表展示,而列表数据往往是嵌套的,比如订单列表,订单中包含多个商品,那么就需要双层嵌套 for 循环遍历。本文将详细介绍使用 Vue.js 双层嵌套 for 循环遍历的方法。 方法一:使用 v-for 指令嵌…

    Vue 2023年5月29日
    00
  • vue eslint简要配置教程详解

    介绍: Vue代码的质量保证是很有必要的,eslint就是很好的工具之一。在Vue项目中,如何配置eslint呢?下面提供一份简要配置教程。 正文: 安装依赖 要在Vue项目中使用eslint,需要安装对应的依赖: npm install eslint eslint-loader eslint-plugin-vue -D 这里需要注意,eslint是esli…

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