Vue - 计算属性的妙用

计算属性的运用

Vue 组件的计算属性是一种通过对已有数据进行实时计算,生成新的数据的方式。在下面的代码中,我们通过计算属性 publishedBooksMessage 实时展示作者发布的书籍信息。

复制代码
<template>
  <div>
    <p>作者: {{ author.name }}</p>
    <p>发布的书: {{ publishedBooksMessage }}</p>
    <ul>
      <li v-for="(book, index) in author.books" :key="index">{{ book }}</li>
    </ul>
    <p>当前时间: {{ currentTime }}</p>
    <button @click="changeAuthorName">改变作者名字</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      author: {
        name: "张三",
        books: [
          "Vue 2 - Advanced Guide",
          "Vue 3 - Basic Guide",
          "Vue 4 - The Mystery"
        ]
      },
      currentTime: ""
    };
  },
  computed: {
    publishedBooksMessage() {
      return this.author.books.length > 0 ? "Yes" : "No";
    }
  },
  methods: {
    changeAuthorName() {
      this.author.name = "李四";
    },
    getCurrentTime() {
      return new Date().toLocaleTimeString();
    }
  },
  created() {
    this.currentTime = this.getCurrentTime();

    setInterval(() => {
      this.currentTime = this.getCurrentTime();
    }, 1000);
  }
};
</script>

<style scoped>
</style>

计算属性的优势

计算属性的一大优势在于它们会进行缓存,只有在相关依赖发生改变时才会重新计算。在这个例子中,publishedBooksMessage 只在 author.books 数组发生变化时才会重新计算,这有效地减少了不必要的计算开销。

实时展示发布的书籍信息

通过计算属性,我们轻松地实现了实时展示作者发布的书籍信息。当书籍数量大于 0 时,显示 "Yes",否则显示 "No"。

相关推荐
zach9 分钟前
Vue/React SPA 打包部署后,子路由刷新 401 未登录问题彻底解决
前端·nginx·next.js
旋生万物11 分钟前
素数螺旋映射 $z_n=n^{1+i}$ 的角分布统计检验与零模型对比
大数据·前端·人工智能·算法·云原生·螺旋生成论·螺旋相位
亿元程序员12 分钟前
游戏引擎都没用!纯AI又上线了一款蚂蚁搬家小游戏!
前端
福兮说19 分钟前
JS 正则的六个坑:带 g 的 test() 一真一假、空匹配死循环、replace 里的 $
开发语言·前端·javascript·正则表达式
miss21 分钟前
给规则引擎加一个拖拽画布:Vue Flow 单向投影 + 布局语义分离
javascript·vue.js·canvas
溪语流沙22 分钟前
Django + Vue电商项目第005讲:后端骨架|Django初始化、配置分层与DRF接入
vue.js·后端·python·django
码艺-Alimjan23 分钟前
Web 网站打包桌面应用的另一种方式,超级简单(C# exe 33Kb)
开发语言·前端·c#
flash俊杰29 分钟前
时间线到 filter_complex:把编辑文档编译成 FFmpeg 滤镜图
前端
Tyrvision40 分钟前
新品发布前,三维动画怎么排期才不挤在最后一周?
前端
miss1 小时前
从零做一个可视化规则引擎:Vue3 递归条件树 + 双引擎结果对比
前端·vue.js·typescript