Vue面试系列之十:watch和computed的区别以及怎么选用

2023-11-14

1. 区别

1.1 定义/语义区别

watch

<input type="test" v-model="foo">
var vm=new Vue({
    el:"#demo",
    data:{
        foo:1
    },
    watch:{
        foo:function(newVal,oldVal){
            console.log(newVal+''+oldVal)
        }
    }
})

vm.foo=2  // 新值2 旧值1

computed

var vm=new Vue({
    el:"#demo",
    data:{
        firstName:"Foo",
        lastName:"Bar"
    },
    computed:{
        fullName:function(){
            return this.firstName+" "+this.lastName
        }
    }
})
vm.fullName  // Foo Bar  computed内部函数调用的时候不需要加()

1.2 功能区别

watch更通用,computed派生功能都能实现,计算属性底层来自于watch,但做了更多,例如缓存;

1.3 用法区别

computed更简单/更高效,优先使用;

有些必须watch,比如值变化要和后端交互。

2. 使用场景

watch

watch需要在数据变化时执行异步或开销较大的操作时使用,简单来讲,当一条数据影响多条数据的时候。例如搜索数据;

computed

对于任何负责逻辑或一个数据属性在它所依赖的属性发生变化时,也要发生变化,简单来讲,当一个属性受多个属性影响的时候,例如 购物车商品结算时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue面试系列之十:watch和computed的区别以及怎么选用 的相关文章

  • 将 >100K 页面链接在一起而不会受到 SEO 惩罚

    我正在创建一个网站 该网站将审查互联网上数十万个其他网站的隐私政策 它的最初内容是基于我的运行普通爬行 http commoncrawl org 50 亿页网络转储和分析所有隐私政策 https stackoverflow com ques
  • 使用 ruby​​ on Rails 向静态网站添加功能

    我是 ruby on Rails 的新手 我有一个包含很多静态页面的网站 我想向网站添加一些动态页面 我将在 ruby on Rails 中开发这些页面 当用户单击静态页面之一上的按钮之一时 将触发这些页面提供的功能 我想我将把动态页面放在
  • 如何通过 HTML 输入标签获取文件的引用? (角度2)

    我想在 Firebase 中上传图片 但要做到这一点 我必须先获取文件 例如 如何通过 HTML 获取我的计算机的图像 我正在尝试这样做 但我不知道这样做的回报是什么 帮帮我吧伙计们
  • php 和 html 文件扩展名有什么区别?

    我有一个 php文件包含以下代码 当我将文件的扩展名更改为 html那么它也以同样的方式表现 任何人都可以解释以下内容 为什么文件的行为方式与两个文件的行为方式相同 扩展 两者有什么区别 php and html文件扩展名 php file
  • Firebase 9(模块化 sdk web )替换 fieldPath

    我将以下代码与 Firebase SDK 8 一起使用 const db firebase firestore const collectionRef db collection collectionName var query colle
  • 根据 $_POST 值填充字段

    我正在寻求有关我试图填写的表格的帮助 我通常会使用 onChange 函数 但我认为这不是一个选择 基本上我有一个
  • 将网页中的表格导入 Excel

    我只有中高级的Excel水平和中级的VBA与Excel背景 我想要做的是从链接中显示的网页导入表格 http www admission unmsm edu pe res20130914 A 011 0 html http www admi
  • Ant Design Collapse - 关闭按钮

    我是 Ant Design 的初学者 在使用 Ant Design 库中的 Collapse 和 Form 时遇到了这个问题 我已经设置了我的页面 其中添加新项目的表单位于折叠中 并且折叠下方有一个项目列表
  • 通过站点到站点 VPN 将 Azure 网站连接到本地数据库

    我的目标是运行一个天蓝色的网站 该网站可以访问我们本地公司数据库中的数据 我按照网络上的教程设置了一个 Azure 虚拟网络 并通过站点到站点 VPN 将其连接到我们本地公司网络 在天蓝色门户中 我可以看到连接实际上正在工作 并且数据已被接
  • 最长和最短的 HTML 字符实体名称是什么? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 管子周围有
  • 清除 Laravel 队列缓存而不重新启动

    在我的应用程序中 每个客户都有一种复杂的类 我们在其中为该特定客户进行一些搜索和替换 我运行队列工作人员每天与 eBay 同步 以便每个客户进行某种搜索和替换 问题是 Laravel 队列会缓存代码很长一段时间 如果我想去更改任何客户类文件
  • 从 Unity WebGL 调用 Angular2 函数

    目前 我正在使用 Angular2 版本 2 1 2 和 Unity 可视化工具 使用 Unity 5 5 构建 我需要做的是从 Unity 到 Angular2 进行通信 我正在使用类似于下面的代码 public void GetBill
  • WebUSB 和 RFID 读取器

    我想知道是否有人有让 RFID 读取器通过 WebUSB 工作的经验 我使用的阅读器是https www parallax com product 28340 https www parallax com product 28340 根据我
  • 使用节点http代理转发http代理

    我正在使用 node http proxy 库来创建转发代理服务器 我最终计划使用一些中间件来动态修改 html 代码 这就是我的代理服务器代码的样子 var httpProxy require http proxy httpProxy c
  • 单击链接时启动本地应用程序

    我正在开发一个内部 Web 应用程序 它允许我为客户存储远程控制凭据 每次我想要连接到客户计算机时 我都需要启动远程支持软件 复制并粘贴用户名和密码 然后单击 开始 按钮 该软件将具有可用的命令行参数 允许我立即启动会话 但是 我不知道如何
  • 使用“邮递员”chrome 应用程序的肥皂请求正文

    假日网络服务 的肥皂请求正文会是什么样子 http www holidaywebservice com HolidayService v2 HolidayService2 asmx wsdl http www holidaywebservi
  • Magento:设置刚刚创建的网站的配置值?

    我正在以编程方式创建网站 用户等 问题是 创建网站时 我无法立即设置配置值 Code
  • MVC4更新部分视图

    我正在开发一个简单的 MVC 应用程序 我有主视图 部分视图和控制器 这是我的主要视图 model partitalViewTest Models Qset div class transbox style height 1 Html Pa
  • 如何防止桌面浏览器(Chrome、Safari)缩放网页

    我尝试使用以下元视图端口标记来防止浏览器缩放 但这不起作用 我知道这是可能的 因为我的缩放在此网站上被阻止 未来主义 xyz http futurism xyz 该网站的视口标签是这样的
  • IIS 8 HTTPS/需要 SSL 导致超时错误

    尝试通过 IIS 8 通过 SSL 发布网站 但出现超时错误 任何帮助表示赞赏 采取的步骤 已验证该网站可以通过 HTTP 访问 http xxx xxx xxx xxx有效 此时使用 IP 地址 如果重要的话 IIS gt 服务器证书 g

随机推荐

  • vs code 安装插件出现XHR error 解决办法

    在给vscode安装颜色主题时 突然发现出现错误XHR failed 插件安装失败 后来想起可能是因为修改过系统时间 果然在恢复自动设置时间之后 插件就可以安装成功了
  • Qt+数据库学习笔记(一)win10+Qt5.12.12+VS2019_x64编译mysql8.0驱动插件

    前言 因项目需要 需要使用Qt连接mysql数据库 笔者上次使用此数据库 已过去很久了 当前版本都发生了很大的变化 笔者在此记录下本次编译过程 一 安装mysql8 0 注 若读者使用的是win7系统 请提前安装 net4 5 否则可能无法
  • java 图片 背景 透明

    package com picture import java awt Graphics2D import java awt image BufferedImage import java io File import java io IO
  • Acwing算法—动态规划

    目录 数字三角形模型 AcWing 898 数字三角形 AcWing 1015 摘花生 AcWing 1018 最低通行费 AcWing 1027 方格取数 AcWing 275 传纸条 最长上升子序列模型 AcWing 895 最长上升子
  • nRF52832 — 串口BLE例程逐行解析【转载】

    原文链接 http blog csdn net u011034150 article details 50617686 转载文章 若有不妥 通知后我会立即删除 本讲逐行代码解析官方串口BLE例程demo 主要分一下几个部分 1 Main函数
  • STM32开发——YModem文件传输协议详解与实现

    STM32开发 YModem文件传输协议详解与实现 在单片机的应用开发中 文件的传输是不可或缺的一部分 而在传输文件时 为了保证传输的稳定性和可靠性 采用一种可靠性高的传输协议是至关重要的 本文将介绍一种常见的文件传输协议 YModem 并
  • java实现数据库备份与恢复

    前言 为了应对项目中数据库突然奔溃 导致丢失数据 这时可以通过代码实现数据库的定时备份与恢复 即使数据库宕机了 我们也可以将之前备份好的数据信息还原到数据库 通过java代码实现数据库的备份与恢复 其实就是通过java代码操作命令行 那么如
  • 二叉树常见面试题(进阶)

    一 常见题型 1 求两个节点的最近公共祖先 2 求二叉树中最远的两个节点的距离 3 由前序遍历和中序遍历重建二叉树 如 前序序列 1 2 3 4 5 6 中序序列 3 2 4 1 6 5 4 判断一棵树是否是完全二叉树 5 将二叉搜索树转换
  • C语言char*字符串数组和unsigned char[]数组的相互转换

    include
  • 数据结构课程设计报告 二叉树的应用

    题 目 二叉树的应用 西 安 邮 电 大 学 计算机学院 一 设计目的 树结构在客观世界中广泛存在 如人类社会的族谱和各种社会组织机构都可用树形象表示 在现代的数字通信 数据压缩 等价类问题处理方面 以及在计算机领域中编译系统的语言结构描述
  • Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero 简介及对比

    Linux 下的两个特殊的文件 dev null 和 dev zero 简介及对比 分类 Linux 内核知识学习 总结 2013 10 22 17 00 279人阅读 评论 0 收藏 举报 Linux devnull devzero 目录
  • Spring框架(IOC)

    一 什么是 IOC 1 控制反转 把对象创建和对象之间的调用过程 交给 Spring 进行管理 2 使用 IOC 目的 为了耦合度降低 二 IOC 底层原理 xml 解析 工厂模式 反射 三 IOC过程 xml解析帮助我们得到xml文件中我
  • Windows下zerotier托盘程序 DesktopUI 编译步骤

    Windows下面zerotier托盘程序 DesktopUI 编译步骤 1 安装windows下的 gcc make cargo 工具 2 下载源码 https github com zerotier DesktopUI git 3 cd
  • 命令行下使用CL.exe编译多cpp文件工程

    一 CL exe是控制 Microsoft C 和 C 编译器与链接器的 32 位工具 编译器产生通用对象文件格式 COFF 对象 obj 文件 链接器产生可执行文件 exe 或动态链接库文件 DLL 用法如下 注意 所有编译器选项都区分大
  • [Git专题] 环境搭建

    环境搭建 在正式使用 Git 之前 首先应当安装 Git 并完成一些基础配置 本章内容就教大家在 Ubuntu 和 CentOS 上安装 Git 的方法 安装 Git 客户端 如果你使用的是基于 Debian 的 Linux 发行版本 那么
  • SpringBoot+redis RedisTemplate/jedis 配置多个数据源 灵活切库 选择库

    目录 1 这里也介绍两种方式 一种是redis的 RedisTemplate 另一种是jedis 大家需要哪一种 自己选择 2 这里先说redis 的 RedisTemplate 1 加入依赖并在在yml 文件里面加入配置 2 添加配置文件
  • 推荐106个软件工程本科的计算机毕业设计,有手就会

    对于即将面临毕业设计的计算机专业学生来说 如何选题和成功完成项目是一个艰难的问题 今天 我们将与大四的学生分享一些毕业设计项目 希望能为你提供一些帮助 一 成品列表 以下所有springboot框架项目的源码博主已经打包好上传到百du云了
  • Java操作Excel - Easy Excel

    一 介绍 官网 https easyexcel opensource alibaba com EasyExcel是阿里巴巴开源的 一个基于Java的 快速 简洁 解决大文件内存溢出的Excel处理工具 他能让你在不用考虑性能 内存的等因素的
  • 抖音跳微信小程序(抖音分享卡片和链接)图文教程

    序 1 本博文参考一下资料 获取接口调用凭据 微信开放文档 获取scheme码 微信开放文档 获取授权帐号调用令牌 微信开放文档 用H5打开微信小程序 weixin 46746389的博客 CSDN博客 2 注意 只能是企业认证的小程序才可
  • Vue面试系列之十:watch和computed的区别以及怎么选用

    1 区别 1 1 定义 语义区别 watch