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

前端开发:Vue中数据绑定原理

Vue 中最大的一个特征就是数据的双向绑定,而这种双向绑定的形式,一方面表现在元数据与衍生数据之间的响应,另一方面表现在元数据与视图之间的响应,而这些响应的实现方式,依赖的是数据链,因此,要了解数据绑定的原理,先要理解下面两方面内容。

一、 Vue中数据链

所谓数据链,它是一种数据关联的形式,在这种形式中,有一到多个的起始数据点,称之为元数据,而由这些元数据因某种关系衍生出的数据,称之为衍生数据,元数据与衍生数据通过数据节点交织在一起,形成数据结构网,而这种结构网,我们称之为数据链。
在这里插入图片描述
  在Vue 中,当数据链中的元数据变化时,与其关联的衍生数据,通过数据链,完成同步更新,实现数据双向绑定的效果;在Vue 实例化对象中,computed选项值,可以为开发人员生成衍生对象,当元数据变化时,生成的衍生对象将会同步更新。

实例: 使用衍生数据显示“张三,你好!”

1. 功能描述

新建一个名称为SayHello.vue的组件,在返回的数据对象中,添加一项名称为“name”的属性,初始值为“张三”,同时,在computed配置选项中,添加一个名为sayHelloName的函数,在函数中返回“张三,你好!”,并在页面中执行该函数。

2. 实现代码

在项目的components 文件夹中,新建一个名称为“ch3”的子文件夹,在这个子文件夹中,添加一个名为“SayHello”的.vue文件,在文件中加入如清单所示代码。

代码清单 SayHello.vue代码
<template><div><div>{{ name }}</div><div>{{ sayHelloName }}</div></div>
</template>
<script>
export default {data() {return {name: "张三",};},computed: {sayHelloName() {return this.name + ",你好!";}},
};
</script>
<style scoped>
div {margin: 10px;text-align: left;
}
</style>

SayHello.vue文件是一个独立的组件,需要将它导入到根组件App.vue中,并声明该组件,最后,在模板中以标签形式应用该组件,因此,App.vue文件修改后的代码,如下列代码清单所示。

<template><SayHello />
</template><script>
import SayHello from "./components/ch3/SayHello.vue";export default {name: "App",components: {SayHello}
};
</script><style>
...省略样式代码
</style>
3.页面效果

保存代码后,页面在Chrome浏览器下执行的页面效果如图下图所示。
在这里插入图片描述

4. 源码分析

在Vue 实例化配置对象中,computed选项中可以生成衍生数据,生成过程由函数来完成,该函数不接收参数,在函数体中,由于this指向实例化的Vue 对象,因此,它可以访问所有实例化对象中挂载的属性值,如this.name,表示元数据值。

此外,computed选项中的函数,虽然可以访问实例化对象中挂载的全部属性值,但它在函数中,必须使用return 语句,返回计算或衍生后的数据,通过这种形式,才可以在模板中使用双大括号方式执行函数,接收并显示返回的数据。

因此,示例中的sayHelloName函数中,先获取元数据name值,并添加“,你好!”形成一个衍生数据,同时,作用函数的返回值;当在模板中,调用该函数时,则直接将接收到的衍生数据显示在页面中,由于是衍生数据,当元数所变化时,将会通过数据链形式,同步衍生数据,因此,衍生数据也会同步更新。即修改name值为“李四”时,页面将直接显示“李四,你好!”的字样。

相关文章:

前端开发:Vue中数据绑定原理

Vue 中最大的一个特征就是数据的双向绑定&#xff0c;而这种双向绑定的形式&#xff0c;一方面表现在元数据与衍生数据之间的响应&#xff0c;另一方面表现在元数据与视图之间的响应&#xff0c;而这些响应的实现方式&#xff0c;依赖的是数据链&#xff0c;因此&#xff0c;要…...

CTF-RE 从0到N: TEA

TEA TEA&#xff08;Tiny Encryption Algorithm&#xff0c;轻量加密算法&#xff09; 是一种简单、快速的对称加密算法。它是一个分组加密算法&#xff0c;通常用于加密 64 位的数据块&#xff0c;并使用 128 位的密钥。TEA 是一种“费斯妥结构”&#xff08;Feistel structu…...

python 使用PIL获取图片长宽

在Python中&#xff0c;你可以使用Pillow库&#xff08;PIL的一个分支和替代品&#xff09;来获取图片的长和宽。Pillow提供了丰富的图像处理功能&#xff0c;包括获取图像的基本属性&#xff0c;如尺寸。 以下是一个简单的示例&#xff0c;展示了如何使用Pillow库来获取图片的…...

【Nas】X-DOC:搞机之PVE部署All In One(黑群晖NAS 软路由OpenWrt Docker Win10远程桌面)

【Nas】X-DOC&#xff1a;搞机之PVE部署All In One&#xff08;黑群晖NAS & 软路由OpenWrt & Docker & Win10远程桌面&#xff09; 1、原硬件配置清单&#xff1a;2、改AIO后增加配置清单&#xff1a;3、虚拟化平台PVE&#xff1a;4、搭建的关键服务&#xff1a; 1…...

linux 驱动源码分析的理解。

首先 &#xff0c; 是&#xff4c;&#xff49;&#xff4e;&#xff55;&#xff58; 驱动&#xff0c;我看网上的老师&#xff0c;在分析源码时 &#xff0c; 不会 所有的函数都分析&#xff0c;而是分析一些比较重要的函数&#xff0c;一些厉害的人&#xff0c;在分析源码时…...

鸿蒙-任务栏右击退出 或 UIAbility窗口关闭,怎么弹框拦截

onPrepareToTerminate 需要配置权限 ohos.permission.PREPARE_APP_TERMINATE 参考链接&#xff1a;文档中心import { emitter } from kit.BasicServicesKit; import { common } from kit.AbilityKit; import { TipsDialog } from kit.ArkUI;// entryAbility.ets 在你的uiabilit…...

【C++进阶篇】——STL的简介

【C进阶篇】——STL的简介 1.什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 2.STL的版本 原始版本 Alexander Stepanov、Meng Lee 在…...

信息安全工程师(70)网络攻击陷阱技术与应用

前言 网络攻击陷阱技术是一种主动的防御方法&#xff0c;作为网络安全的重要策略和技术手段&#xff0c;有利于网络安全管理者获得信息优势。 一、网络攻击陷阱技术原理 网络攻击陷阱技术可以消耗攻击者所拥有的资源&#xff0c;加重攻击者的工作量&#xff0c;迷惑攻击者&…...

Web保存状态的手段(Session的使用)

一&#xff0c;JSP中的page指令 1. <% page language“java” session“true”%> session&#xff1a;此页面是否使用session&#xff0c;默认值为true 二&#xff0c;使用Session完善之前的登录程序 1. 如何禁止直接输入URL地址进入登录功能的欢迎界面&#xff1f; …...

第五十四章 安全元素的详细信息 - DerivedKeyToken 详情

文章目录 第五十四章 安全元素的详细信息 - <DerivedKeyToken> 详情详情消息中的位置 第五十四章 安全元素的详细信息 - 详情 <DerivedKeyToken> 的目的是携带发送者和接收者可以独立使用的信息来生成相同的对称密钥。这些方可以使用该对称密钥对 SOAP 消息的相关…...

kafka 的高可用机制是什么?

大家好&#xff0c;我是锋哥。今天分享关于【kafka 的高可用机制是什么&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; kafka 的高可用机制是什么&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Apache Kafka 是一个分布式消息系统&am…...

4.1.3 网站通信技术

文章目录 1. 网站通信方式2. URL - 统一资源定位符定义格式演示 3. 发送请求的4种形式在地址栏中输入URL访问超链接href属性指定URLform表单在action中指定URL通过AJAX请求后端数据 4. 两种不同返回的请求发送URL&#xff0c;后端处理完响应页面发送AJAX请求&#xff0c;后端处…...

Java-图书管理系统

我的个人主页 欢迎来到我的Java图书管理系统&#xff0c;接下来让我们一同探索如何书写图书管理系统吧&#xff01; 1管理端和用户端 2建立相关的三个包&#xff08;book、operation、user&#xff09; 3建立程序入口Main类 4程序运行 1.首先图书馆管理系统分为管理员端和…...

python如何通过json以及pickle读写保存数据

记录信息 比如说我写了这样一段程序&#xff0c;记录了爱吃的食物&#xff1a; food_list []while True:c input("输入1添加新的食物&#xff0c;输入2查询已添加的食物&#xff0c;输入exit退出&#xff1a;")if c "1":new_food input("输入你…...

【SPIE出版,EI检索稳定】2024年人机交互与虚拟现实国际会议(HCIVR 2024,11月15-17日)

2024年人机交互与虚拟现实国际会议&#xff08;HCIVR 2024&#xff09; 2024 International Conference on Human-Computer Interaction and Virtual Reality 官方信息 会议官网&#xff1a;www.hcivr.org 2024 International Conference on Human-Computer Interaction and …...

Linux vim编辑器

前言&#xff1a; 首先我们来了解一下什么是编辑器&#xff0c;通常我们在widow系统下例如C/C我们进行写代码时&#xff0c;我们通过vs2022等等编译器进行&#xff0c;这里的编译器是一种IDE&#xff08;集成开发环境&#xff09;&#xff0c;集成开发环境是将代码编辑器、编译…...

普推知产:申请商标名称从4字改成3字下了初审!

近日7月的时候普推知产老杨帮客户申请的水果猕猴桃31类商标&#xff0c;初步审定公告下来了&#xff0c;基本没什么问题三个月公告结束后一个月内就可以拿到商标注册证&#xff0c;客户所在地全国有名猕猴桃之县&#xff0c;同质化竞争还得需要商标才可以。 刚开始了解到这位做…...

Flink 状态精准一次性特性

Flink 的一个重大价值在于&#xff0c; 它既保证了 exactly-once &#xff0c;也具有低延迟和高吞吐 的处理能力 。 1.端到端&#xff08;End-To-End&#xff09;状态一致性 端到端的一致性保证&#xff0c;意味着结果的正确性贯穿了整个流处理应用的始终&#xff1b;每 一…...

算法笔记day08

1.游游的水果大礼包 这道题很容易让人想到贪心&#xff0c;但是其实是一道枚举题&#xff0c;只需举一个反例&#xff0c;贪心无非就是哪个礼包价值大&#xff0c;就优先组成哪个礼包。 算法思路&#xff1a; 设可以组成x个a礼包&#xff0c;y个b礼包&#xff0c;求ax by的最…...

在Selenium中有哪些元素对象操作方法?( ̄﹃ ̄)

在Selenium中&#xff0c;driver.find_element() 方法用于定位页面上的单个元素。一旦你定位到了一个元素&#xff0c;你可以对这个元素执行多种操作。此外&#xff0c;driver.find_element() 只是定位元素的方法之一&#xff0c;它还有其他一些相关的方法和属性&#xff0c;但…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...