当前位置: 首页 > news >正文

天津开发区网站建设潮州网站推广教程

天津开发区网站建设,潮州网站推广教程,sem竞价是什么,做的网站加载太慢怎么办vue3 学习笔记08 – computed 和 watch computed computed 是 Vue 3 中用于创建计算属性的重要 API,它能够根据其它响应式数据动态计算出一个新的值,并确保在依赖数据变化时自动更新。 基本用法 squaredCount 是一个计算属性,它依赖于 count…

vue3 学习笔记08 – computed 和 watch

computed

computed 是 Vue 3 中用于创建计算属性的重要 API,它能够根据其它响应式数据动态计算出一个新的值,并确保在依赖数据变化时自动更新。

  1. 基本用法

    squaredCount 是一个计算属性,它依赖于 count 的值,并且会在 count 变化时自动更新

    import { ref, computed } from 'vue';// 定义一个响应式数据const count = ref(1);// 定义一个计算属性const squaredCount = computed(() => count.value * count.value);console.log(squaredCount.value); // 输出:1// 修改 count,触发计算属性更新count.value = 2;console.log(squaredCount.value); // 输出:4
  2. 缓存和计算属性的惰性求值

    computed 默认会缓存计算结果,只有在它的依赖项变化时才会重新计算。这样可以确保在性能上的优化,避免不必要的计算

         import { ref, computed } from 'vue';const count = ref(1);// 定义一个计算属性,使用 getter 函数const squaredCount = computed(() => {console.log('computed squaredCount'); // 仅在首次获取或依赖变化时输出return count.value * count.value;});console.log(squaredCount.value); // 输出:1count.value = 2;console.log(squaredCount.value); // 输出:4
  3. 计算属性的 setter

    在某些情况下,可能需要通过计算属性设置值。Vue 3 允许定义计算属性的 get 和 set 方法,使其可以作为双向绑定的源。

     import { ref, computed } from 'vue';const firstName = ref('John');const lastName = ref('Doe');const fullName = computed({get: () => `${firstName.value} ${lastName.value}`,set: (value: string) => {const names = value.split(' ');firstName.value = names[0];lastName.value = names[names.length - 1];}});console.log(fullName.value); // 输出:John DoefullName.value = 'Jane Smith';console.log(firstName.value); // 输出:Janeconsole.log(lastName.value); // 输出:Smith
  4. 在 Vue 组件中使用

    在 Vue 组件中,可以将计算属性直接用于模板中,而不需要额外的 .value 访问方式。

    <template><div><p>Count: {{ count }}</p><p>Squared Count: {{ squaredCount }}</p></div></template><script setup>import { ref, computed } from 'vue';const count = ref(1);const squaredCount = computed(() => count.value * count.value);</script>
watch

watch 函数用于监听一个响应式数据的变化,它可以用来执行一些副作用操作,比如异步请求、处理复杂逻辑或者更新状态

  1. 监听响应式数据的变化
  import { ref, watch } from 'vue';const count = ref(0);// 通过 watch 函数监听 count 的变化。每当 count 发生变化时,回调函数会被调用,同时传入新值 newValue 和旧值 oldValue。watch(count, (newValue, oldValue) => {console.log(`count changed from ${oldValue} to ${newValue}`);});
  1. 监听多个数据的变化
      import { ref, watch } from 'vue';const firstName = ref('John');const lastName = ref('Doe');watch([firstName, lastName], ([newFirst, newLast], [oldFirst, oldLast]) => {console.log(`Name changed from ${oldFirst} ${oldLast} to ${newFirst} ${newLast}`);});
  2. 异步处理和立即执行
  import { ref, watch } from 'vue';const count = ref(0);watch(count, async (newValue, oldValue) => {console.log(`count changed from ${oldValue} to ${newValue}`);// 异步操作示例try {await someAsyncOperation(newValue);} catch (error) {console.error('Async operation failed:', error);}}, { immediate: true }); // 立即执行回调函数
  1. 停止监听

    watch终止监听,只需要将watch赋值给一个变量,当达到条件调用watch赋值的那个变量就可以终止监听了

      import { ref, watch } from 'vue';const count = ref(0);const stopWatching = watch(count, (newValue, oldValue) => {console.log(`count changed from ${oldValue} to ${newValue}`);});// 停止监听stopWatching();
http://www.yayakq.cn/news/921298/

相关文章:

  • asp 网站后台哪里查网站备案信息
  • 魔法自助建站自己建企业网站怎么建
  • 包头住房和城乡建设厅网站wordpress 访问路径
  • 超便宜的网站wordpress 微信 登陆地址
  • 查询学校信息的网站上海展览设计公司
  • 绥化网站建设公司手机移动端网站
  • 三亚北京网站建设徐州网站建设优化
  • 上海专业网站建设价做跳转链接到自己的网站
  • 一流的锦州网站建设搭建wordpress站点
  • 专门做2k名单的网站wordpress 完整模板
  • 工程建设最好的网站葫芦岛公司做网站
  • 鞍山做网站排名app制作公司
  • 荣耀手机商城官方网站下载网站建设需求模板
  • 专业外贸网站建设_诚信_青岛建筑培训网安全员
  • 建设银行河北省分行网站什么网站可以做图赚钱吗
  • 焦作北京网站建设wordpress修改网站名称
  • 网站没有域名设置吗深圳全网营销型网站
  • 做汉字的教育网站关于美食的网页模板
  • wordpress打开网站加速企业网上管理系统
  • 无锡外贸网站制作公司兰州科技公司有哪些
  • 做网站租什么服务器wordpress自动插件下载
  • 个人网站要怎么做东莞网站优化一般多少钱
  • wordpress外贸网站模板php7安装 WordPress
  • 购物网站可行性分析报告开网店需要自己做网站吗
  • wordpress禁用文章修订版广州网站建设网站优化网站推广
  • 自己做文字壁纸的网站企业策划书范文
  • 房产中介网站建设模板网站建设linux
  • 小型网站制作网站制作学什么
  • idc自动续费网站源码哪个网站做自行车评测的
  • 网站模板在线演示怎么做网站优化布局