【Vue3】2-4 : 声明式渲染及响应式数据实现原理

本书目录:点击进入

一、声明式渲染

1.1 什么是JS表达式:能够进行赋值的操作

▶  正确

▶  错误示例

二、示例:2秒后,页面中 message 由 hello world 变成 hi vue

▶  效果

三、原理:利用ES6的Proxy对象对底层进行了监控

一、声明式渲染

  • {{ js表达式 }}

  • 简洁的模板语法来声明式地 将数据渲染进 DOM

1.1 什么是JS表达式:能够进行赋值的操作

▶  正确

  • {{ 'hi' }}

  • {{ [1, 2, 3] }}

  • {{ function(){} }}

▶  错误示例

  • {{ if(true){} }}

如:if(true){} 报错

二、示例2秒后,页面中 message 由 hello world 变成 hi vue

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="../vue.global.js"></script>
</head>
<body><div id="app">{{ message }}</div><script>let vm = Vue.createApp({data(){return {message: 'hello world'}}}).mount('#app');<!-- 延迟2秒后执行:修改 data.message -->setTimeout(()=>{vm.message = 'hi vue3';}, 2000)</script>
</body>
</html>

▶  效果

三、原理利用ES6的Proxy对象对底层进行了监控

<body><div id="app"></div><script>let data = {message: 'hello world'};data = new Proxy(data, {set(target, key, value){console.log('set');app.innerHTML = value;},get(target){console.log('get');return target.message;}});app.innerHTML = data.message;setTimeout(()=>{data.message = 'hi vue';}, 2000)</script>
</body>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/337436.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zippo打火机激光打标机

激光打标技术是一种高精度的加工方式&#xff0c;能够在各种材料表面进行精细的打标&#xff0c;包括金属、塑料、玻璃等。随着科技的不断进步&#xff0c;激光打标技术的应用范围越来越广泛&#xff0c;特别是在制造行业&#xff0c;已经成为一种重要的加工手段。 Zippo打火机…

设计与实现基于Java+MySQL的模拟银行ATM操作系统

课题背景 随着现代经济的发展&#xff0c;电子支付和自动化银行服务已成为人们生活中不可或缺的一部分。自动取款机&#xff08;ATM&#xff09;作为一种常见的自助服务设备&#xff0c;使用户能够方便地进行资金的存取、查询余额、转账等操作&#xff0c;而无需到银行柜台。 …

如何利用大语言模型(LLM)打造定制化的Embedding模型

一、前言 在探索大语言模型&#xff08;LLM&#xff09;应用的新架构时&#xff0c;知名投资公司 Andreessen Horowitz 提出了一个观点&#xff1a;向量数据库是预处理流程中系统层面上最关键的部分。它能够高效地存储、比较和检索高达数十亿个嵌入&#xff08;也就是向量&…

地图移动逻辑

主要的一些问题 0. 可能会很久没收到,,或者一下子同时受到很多个同步的包 关于坐标滞后导致的一些游戏逻辑问题,比如攻击命中的判定问题等,一般是以服务器数据为判定依据,逻辑判定还是以服务器为主,客户端主要做表现。 1. 插值 关于坐标上报频率,我采取的是每100ms 或…

JS栈和堆:数据是如何存储的

JS栈和堆&#xff1a;数据是如何存储的 背景JavaScript 是什么类型的语言JavaScript 的数据类型内存空间栈空间和堆空间再谈闭包 背景 JS有多种数据类型&#xff1a;数字型&#xff0c;字符串型&#xff0c;数组型等&#xff0c;虽然 JavaScript 并不需要直接去管理内存&#…

Windows 2012 R2 单网卡安装 PPTPVP*

环境 1、服务器&#xff1a;Windows Server 2012 R2&#xff08;虚拟机&#xff09; 内网IP&#xff1a;10.3.0.233 2、客户端&#xff1a;Windows 11 需求&#xff1a;当客户端通过VPN连接后&#xff0c;只有当访问 10.3.0.0 网段的数据包才走 VPN 通道后&#xff0c;其它…

python 计数器

这个Python脚本定义了一个名为new_counter()的函数&#xff0c;它读取系统时间并将其与存储在文件中的时间进行比较。然后根据比较结果更新存储在另一个文件中的计数器值。如果系统时间与存储的时间匹配&#xff0c;则计数器值增加1。如果系统时间与存储的时间不匹配&#xff0…

软件测试|MySQL CROSS JOIN:交叉连接的详细解析

简介 在 MySQL 数据库中&#xff0c;CROSS JOIN 是一种用于生成两个或多个表的笛卡尔积的连接方法。CROSS JOIN 不需要任何连接条件&#xff0c;它将左表的每一行与右表的每一行进行组合&#xff0c;从而生成一个包含所有可能组合的结果集。本文将详细介绍 MySQL 中的 CROSS J…

SpringMVC 学习博客记录

文章目录 博客记录请求转发和请求包含request.getRequestDispatcher() 源码学习知识点记录 博客记录 Handler、HandlerMapping和HandlerAdapter作用及区别 请求转发和请求包含 request.getRequestDispatcher() getRequestDispatcher()包含两个重要方法&#xff0c;分别是请…

【大数据OLAP引擎】StartRocks存算分离

存算分离的原因 降低存储成本&#xff1a;同样的存储大小对象存储价格只有SSD的1/10&#xff0c;所以号称存储成本降低80%不是吹的。 存算一体到存算分离 存算一体 作为 MPP 数据库的典型代表&#xff0c;StarRocks 3.0 版本之前使用存算一体 (shared-nothing) 架构&#xf…

用Linux的视角来理解缓冲区概念

缓冲区的认识 缓冲区&#xff08;buffer&#xff09;是存储数据的临时存储区域。当我们用C语言向文件中写入数据时&#xff0c;数据并不会直接的写到文件中&#xff0c;中途还经过了缓冲区&#xff0c;而我们需要对缓冲区的数据进行刷新&#xff0c;那么数据才算写到文件当中。…

基于JavaWeb+BS架构+SpringBoot+Vue校车调度管理系统的设计和实现

基于JavaWebBS架构SpringBootVue校车调度管理系统的设计和实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 摘 要 1 Abstract 1 目 录 2 1 绪 论 1 1.1研究背景 1 1.2 研究意义 1 1.…