vue 常用特性 ( 计算属性 | 侦听器 | 过滤器 )

计算属性

在 Vue.js 中,计算属性是一种基于它们的依赖进行缓存的响应式属性。计算属性在模板中被当作普通属性来使用,但它们实际上是基于它们的依赖(即其他数据属性)动态计算出来的值。

定义计算属性

在 Vue 组件中,可以通过 computed 选项来定义计算属性。计算属性是一个对象,其键是计算属性的名称,值是一个函数,该函数返回计算属性的值。

 <div id="app"><div>计算属性--{{reversedMsg}}</div><div>计算属性--{{reversedMsg}}</div><div>方法--{{reverse()}}</div><div>方法--{{reverse()}}</div></div><script>//  表达式的计算逻辑可能会比较复杂,使用计算属性可以使魔板内容更加简洁var vm = new Vue({el: '#app',data: {msg: '焦虑'},//计算属性在 Vue 组件的 computed 选项中进行定义computed: {//反转字符串reversedMsg: function() {console.log('调用了计算属性');return this.msg.split('').reverse().join('');}},methods: {reverse: function() {console.log('调用了方法');return this.msg.split('').reverse().join('');}}})</script>

计算属性的特点

缓存:

计算属性是基于它们的依赖进行缓存的。如果依赖没有发生变化,多次访问计算属性会立即返回之前的计算结果,而不会重新执行函数。

方法 vs 计算属性:

虽然计算属性在模板中看起来和方法类似(都是使用 {{ }} 语法),但它们有一个重要的区别:计算属性是基于它们的依赖进行缓存的,而方法则会在每次调用时重新执行。

设置器(Setter):

计算属性默认只有 getter,但也可以提供一个 setter。当计算属性被赋值时,setter 会被调用。

computed: {fullName: {// getterget() {return this.firstName + ' ' + this.lastName;},// setterset(newValue) {const names = newValue.split(' ');this.firstName = names[0];this.lastName = names[names.length - 1];}}
}

过滤器

Vue过滤器是Vue.js框架中一种用于对数据进行格式化处理的工具

形式

1: 它们可以在双花括号插值,通过管道符“|”来调用
2: v-bind表达式中使用

Vue过滤器分为全局过滤器和局部过滤器两种:

全局过滤器:定义在Vue实例化之前,作用于所有Vue实例。适用于需要在多个组件中复用的过滤器。全局过滤器的定义通常放在Vue实例化之前,使用Vue.filter方法。
局部过滤器:定义在组件内部,只作用于该组件。适用于只在特定组件中使用的过滤器。局部过滤器在组件的filters选项中定义。

<!--过滤器作用 格式化数据--><div id="app"><!--添加过滤器--><input type="text" v-model="msg" /><!--可添加多个过滤器--><!--方法一 插值表达式--><div>{{msg | upper | lower}}</div><!--方法二 属性绑定--><div :a="msg | upper">测试</div></div><script type="text/javascript">//全局过滤器 val是目表元素/* Vue.filters(过滤器名称,function(目标数据,参数){return 结果  })*/// /charAt(index) 返回指定索引的字符Vue.filter('upper', function(val) {return val.charAt(0).toUpperCase() + val.slice(1)})Vue.filter('lower', function(val) {return val.charAt(0).toUpperCase().toLowerCase() + val.slice(1)})var vm = new Vue({el: '#app',data: {msg: ""},methods: {},//局部过滤器filters: {lower: function(val) {return val.charAt(0).toUpperCase().toLowerCase() + val.slice(1)},upper: function(val) {return val.charAt(0).toUpperCase() + val.slice(1)}}})</script>

侦听器

侦听器(Watcher)是Vue.js提供的一种响应式数据监听机制,监听Vue实例上数据属性的变化,并在变化发生时执行特定的逻辑。以下是关于Vue侦听器的详细解释:

在Vue实例或组件中,可以通过watch选项来定义侦听器。watch是一个对象,其键是要监听的数据属性的名称,值是一个函数或带有选项的对象,该函数或对象将在数据属性变化时被调用。

简单函数形式

侦听器可以是一个简单的函数,该函数接收两个参数:新值和旧值。当监听的数据属性变化时,函数会被调用,并传入新值和旧值作为参数。

<div id="app"><div><label></label><input type="text" v-model="firstName" /></div><div><label></label><input type="text" v-model="lastName" /></div><!--实时显示姓名--><div>{{fullName}}</div></div><script type="text/javascript">var vm = new Vue({//侦听器观察和相应Vue实例上数据的变化,数据一旦发生变化就通知侦听器绑定的方法//应用场景:数据变化是进行异步或是开销大的操作el: '#app',data: {firstName: '',lastName: '',fullName: '' },watch: {firstName: function(newVal, oldVal) { //newVal 变化后的值 ,oldVal原来的值this.fullName = newVal + this.lastName;console.log('原来的值' + oldVal);},lastName: function(newVal, oldVal) { //val 为fullName变化后的值this.fullName = this.firstName + newVal}},})</script>   

带有选项的对象形式:

侦听器也可以是一个带有选项的对象,这些选项包括handler(回调函数)、deep(深度监听)、immediate(立即执行)等。

deep: true表示深度监听user对象内部属性的变化,immediate: true表示在侦听器初始化时立即执行回调函数。

new Vue({data: {user: {name: 'John',age: 30}},watch: {user: {handler: function(newVal, oldVal) {console.log('user object changed');},deep: true,immediate: true}}
});

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

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

相关文章

博客文章怎么设计分类与标签

首发地址&#xff08;欢迎大家访问&#xff09;&#xff1a;博客文章怎么设计分类与标签 新网站基本上算是迁移完了&#xff0c;迁移之后在写文章的过程中&#xff0c;发现个人的文章分类和标签做的太混乱了&#xff0c;分类做的像标签&#xff0c;标签也不是特别的丰富&#x…

1+X应急响应(网络)网络流量分析技术:

网络流量分析技术&#xff1a; 全流量分析&#xff1a; Wireshark常用功能&#xff1a; Wireshark界面&#xff1a; Wireshark常用的使用方法&#xff1a; 全流量分析-分析web攻击&#xff1a; 全流量分析-分析DNS攻击&#xff1a; 全流量分析-分析病毒&#xff1a; 全流量分析…

LLM评测指标与评测方法

文章目录 常见评测指标语言建模任务相关评测指标分类任务相关评测指标条件文本生成任务相关评测指标问答任务相关评测指标执行类任务相关评测指标偏好排序任务相关评测指标随着大模型技术研究的快速发展,学术界和工业界相继发布了众多大语言模型。这些模型有的展现出强大的通用…

面向服务的软件工程——巨详细讲解商务流程建模符号 (BPMN),一篇章带你入门BPMN!!!(week1)

文章目录 一、前言二、重点概念三、BPMN元素讲解流对象1.活动任务(Task)子流程(sub-process)多实例活动连接对象序列流消息流关联泳道Artifacts数据对象组(Group)事件(Events)启动事件中间事件结束事件边界事件边界事件1边界事件2小疑问?网关参考文献:一、前言 在我们…

机器翻译-基础与模型

一、机器翻译发展历程 基于规则的-->基于实例的-->基于统计方法的-->基于神经网络的 传统统计机器翻译把词序列看作离散空间里的由多个特征函数描述的点&#xff0c;类似 于 n-gram 语言模型&#xff0c;这类模型对数据稀疏问题非常敏感。神经机器翻译把文字序列表示…

thinkphp6模板调用URL方法生成的链接异常

var uul params.url ;console.log(params.url);console.log("{:Url(UserLog/index)}");console.log("{:Url("uul")}"); 生成的链接地址 UserLog/index /jjg/index.php/Home/UserLog/index.html /jjg/index.php/Home/Index/UserLog/index.html…

基于Java Springboot网上花卉购物系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

WQ9101 WIFI6模组移植实操

物奇WQ9101是集成 Wi-Fi和蓝牙子系统的双模芯片。支持 802.11a/b/g/n/ac/ax协议、2.4G5G双频并发的 Wi-Fi子系统&#xff0c;以及支持Bluetooth 5.3协议的蓝牙子系统。主要应用于 电视、 平板电视、 平板PC、手机智能音箱等 、手机智能音箱等 、手机智能音箱等领域 。 一、平台…

领海基点的重要性-以黄岩岛(民主礁)的领海及专属经济区时空构建为例

目录 前言 一、Turf.js缓冲区绘制 1、缓冲区分析介绍 2、缓冲区参数 3、Mask多边形空洞 4、Mask参数 二、领海基点、领海的WebGIS展示 1、领海基点的绘制 2、领海面的绘制 三、毗邻区和专属经济区绘制 1、毗邻区的绘制 2、专属经济区的绘制 四、总结 前言 在上一篇的…

【Pythonr入门第二讲】你好,世界

"Hello, World!" 是一种传统的编程入门示例&#xff0c;通常是程序员学习一门新编程语言时编写的第一个程序。这个程序的目标非常简单&#xff1a;在屏幕上输出 "Hello, World!" 这个字符串。尽管它非常简单&#xff0c;但具有重要的象征意义和实际价值。 …

25.UE5时间膨胀,慢动作,切换地图,刷BOSS

2-27 时间膨胀、慢动作、切换地图、刷BOSS_哔哩哔哩_bilibili 目录 1.刷新BOSS逻辑 2.时间膨胀实现慢动作 3.胜利画面&#xff0c;下一关 3.1胜利画面UI 3.2第一关、第二关游戏模式 3.3下一关按钮事件的绑定 1.刷新BOSS逻辑 实现当场上的怪物都死亡后&#xff0c;进行刷…

探索Python PDF处理的奥秘:pdfrw库揭秘

文章目录 探索Python PDF处理的奥秘&#xff1a;pdfrw库揭秘1. 背景&#xff1a;为何选择pdfrw&#xff1f;2. pdfrw是什么&#xff1f;3. 如何安装pdfrw&#xff1f;4. 五个简单的库函数使用方法4.1 读取PDF信息4.2 修改PDF元数据4.3 旋转PDF页面4.4 提取PDF中的图片4.5 合并P…

游戏引擎学习第19天

介绍 这段内容描述了开发者在进行游戏开发时&#xff0c;对于音频同步和平台层的理解和调整的过程。以下是更详细的复述&#xff1a; 开发者表达了他希望今天继续进行的工作内容。他提到&#xff0c;昨天他讲解了一些关于音频的内容&#xff0c;今天他想稍微深入讲解一下他正…

【初阶数据结构与算法】线性表之栈和队列的定义与实现(含源码和有效的括号练习)

文章目录 一、栈的概念与结构1.栈的概念与操作2.栈的底层结构选型 二、栈的实现1.栈结构的定义2. 栈的初始化和销毁栈的初始化栈的销毁 3.栈的扩容与入栈栈的扩容入栈 4.判断栈是否为空和出栈判断栈是否为空出栈 5.取栈顶元素和获取栈中有效元素个数取栈顶元素获取栈中有效元素…

详细分析ipvsadm负载均衡的命令

目录 前言1. 基本知识2. 命令参数3. 拓展 前言 LVS四层负载均衡架构详解Lvs推荐阅读&#xff1a;添加链接描述 1. 基本知识 ipvsadm 是用于管理和配置 Linux 服务器上 IP Virtual Server (IPVS) 的工具&#xff0c;是 Linux 提供的一个负载均衡模块&#xff0c;支持多种负载…

小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现

项目运行 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境&#xff1a;Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

苹果ASA归因对接以及API接入

一、归因概要 广告归因&#xff0c;目的是用于衡量广告带来的激活用户的成本以及后续进一步的用户质量表现。 Apple Ads 广告平台是基于 App Store&#xff08;站内广告&#xff09;&#xff0c;同时属于自归因平台&#xff08;通常称为 SAN&#xff09;。这两个因素&#xff…

内容占位符:Kinetic Loader HTML+CSS 使用CSS制作三角形原理

内容占位符 前言 随着我们对HTML和CSS3的学习逐渐深入&#xff0c;相信大家都已经掌握了网页制作的基础知识&#xff0c;包括如何使用HTML标记构建网页结构&#xff0c;以及如何运用CSS样式美化页面。为了进一步巩固和熟练这些技能&#xff0c;今天我们一起来完成一个有趣且实…

【金融风控项目-08】:特征构造

文章目录 1.数据准备1.1 风控建模特征数据1.2 人行征信数据1.3 据之间的内在逻辑 2 样本设计和特征框架2.1 定义观察期样本2.2 数据EDA(Explore Data Analysis)2.3 梳理特征框架 3 特征构造3.1 静态信息和时间截面特征3.2 未来信息问题3.2.1 未来信息案例3.2.2 时间序列特征的未…

Linux网络:HTTPS协议

Linux网络&#xff1a;HTTPS协议 加密方式对称加密非对称加密混合加密中间人攻击 证书数据签名CA认证 HTTPSSSL/TSLHTTPS 在HTTP协议中&#xff0c;所有的数据都采用明文的形式传输&#xff0c;这就会导致数据非常容易泄露&#xff0c;只要拿到HTTP报文&#xff0c;就可以窃取各…