Vue|计算属性

news/2025/1/13 3:01:27/

  • 1. 计算属性
    • 1.1 差值语法
    • 1.2 methods
    • 1.3 计算属性

1. 计算属性

1.1 差值语法

开始前分别在项目目录创建文件夹及页面如下

在这里插入图片描述

需求1:在两个文本框中分别输入姓和名的同时需要在下方将数据进行拼接组装,效果如下图

在这里插入图片描述

如果用传统的方式来实现的话,需要在文本框增加两个监听事件,当文本框数据改变时则获取并进行拼接

<input  onchange="方法名()"/>

这种方式固然也可以实现,但是我们现在是基于vue在开发,所以我们可以通过vue的双向绑定实现这一效果,在html定义文本框及名称显示如下

在这里插入图片描述

姓:<input type="text" /> <br /><br />
名:<input type="text" /> <br /><br />
名称:<span>{{surName}}-{{theName}}</span> <br /><br />

在js的data中分别定义surName和theName两个字段,可根据个人需求决定是否设置初始值

data: {surName: '摔跤',theName: '猫子',
},

同时在input文本框中定义v-model属性将其与data中设置的字段进行绑定关联即可实现效果

在这里插入图片描述

1.2 methods

需求2:在通过文本框输入姓和名时,不允许其长度超过2位,超过则截断

在这里插入图片描述

这个效果使用上述差值语法也能实现,不过代码在后期维护的时候可读性会比较差,这里我们使用第二种方式methods进行实现

在这里插入图片描述

在html中定义的同时,在JS中也要定义对应的函数

在这里插入图片描述

在splicingName函数中实现截断代码并保存刷新页面即可实现效果

在这里插入图片描述

splicingName() {return this.surName.slice(0,3) + '-' + this.theName.slice(0,3);
},

1.3 计算属性

什么是计算属性?
计算属性是vue实例中的一个配置选项:computed
所有的计算属性都以函数的形式写在vue实例内的computed选项内,最终返回计算后的结果。其依赖的数据变化才变化。
每一个计算属性都包含一个 getter 方法和一个 setter 方法。

在这里插入图片描述

概念写的很清楚,那直接在JS中增加一个配置项以及splicingName函数,可以看到效果是一样的

在这里插入图片描述

get的作用:当有人读取该计算属性时,get就会被调用,且返回值就作为该计算属性的值
get什么时候调用:1.初次读取该计算属性时会将数据存入缓存,后面再次调用时会读取缓存。2.所依赖的数据发生变化时。

缓存测试:我在页面上同时调用多次这个函数,同时在控制台进行打印,他会被调用几次呢?

在这里插入图片描述

很明显的看到只被调用了一次。这就是使用计算属性的优势,与methods相比多了缓存机制,避免重复调用浪费性能,效率更高。

在这里插入图片描述

那么set什么时候被调用呢?当该属性被修改时被调用,如果确定该属性不存在被修改只有被调用的情况下可以不用写set,非必写。在控制台直接对vm.splicingName进行赋值,可以看到value被输出,看输出的行号就是所定义的set方法。

在这里插入图片描述

计算属性既然对于set可写可不写,那必然是有着简写模式的

在这里插入图片描述

什么场景考虑使用简写呢?只有考虑读取,不考虑修改的情况下才可以使用简写模式

在这里插入图片描述

splicingNameV2(){return this.surName + '-' + this.theName;},

http://www.ppmy.cn/news/37012.html

相关文章

【Dockerfile学习笔记】常用命令及参数意义

什么是 Dockerfile&#xff1f; Dockerfile 是一个用来构建镜像的文本文件&#xff0c;文本内容包含了一条条构建镜像所需的指令和说明。 下面罗列一下常用的与镜像有关的命令&#xff1a; 列举本地的镜像&#xff1a;docker images 拉取镜像&#xff1a;docker pull tomcat …

线程池(2022-09-29)

文章目录前言一、线程池的常用构建方式1.构造方法实现(推荐)2.通过 Executor 框架的工具类 Executors 来实现(不推荐)3.Spring框架提供4.Guava&#xff0c;hutool的ThreadFactoryBuilder5.线程池的异常处理二、线程池核心 阻塞队列 BlockingQueue1.二级标题三、线程池异常1.try…

【理论推导】变分自动编码器 Variational AutoEncoder(VAE)

变分推断 (Variational Inference) 变分推断属于对隐变量模型 (Latent Variable Model) 处理的一种技巧&#xff0c;其概率图如下所示 我们将 X{x1,...xN}X\{ x_1,...x_N \}X{x1​,...xN​} 看作是每个样本可观测的一组数据&#xff0c;而将对应的 Z{z1,...,zN}Z\{z_1,...,z_N…

优漫动游影视后期学什么?

影视后期就是对前期拍摄的视频进行剪辑&#xff0c;对文字、调色、特效等后期处理&#xff0c;最终形成我们所看到的成片。   影视后期从应用划分&#xff0c;核心包括两个大的应用领域&#xff0c;影视剧方向和广告与包装方向&#xff0c;影视剧方向比如电视剧&#xff0c…

微服务架构(一)

系统架构 随着互联网的发展&#xff0c;网站应用的规模也在不断的扩大&#xff0c;进而导致系统架构也在不断的进行变化。 从互联网早起到现在&#xff0c;系统架构大体经历了下面几个过程: 单体应用架构--->集群应用架构--->垂直应用架构--->SOA 架构--->微服务架…

类ChatGPT平台推荐【国内访问ChatGPT4】

类ChatGPT平台推荐【国内访问ChatGPT】 1 ChatGPT介绍 ChatGPT是OpenAI开发出的一个人工智能模型。但是国内大部分人因为网络限制无法访问和使用。今天推荐国内访问途经。 ChatGPT作用&#xff1a; 回答问题信息搜索语言翻译文本生成文案编写代码编程助手创意写作 … 注意&am…

发现一个白嫖GPT4.0的方法!真的是完胜3.5!

大家好&#xff0c;我是五竹。 先说个基本的科普&#xff0c;最近被问的人都嘛了。 1、ChatGPT账号只有两种:普通账号和plus账号。 2、普通账号升级到plus账号&#xff0c;需要绑定国外的支付方式&#xff0c;每个月大概130左右&#xff01;plus账号更稳&#xff01;更快&am…

cleanmymac最新2023版 mac清理软件CleanMyMac X4.12.5 中文版功能介绍

CleanMyMac X4.12.5 中文版只需两个简单步骤就可以把系统里那些乱七八糟的无用文件统统清理掉&#xff0c;节省宝贵的磁盘空间。cleanmymac x个人认为X代表界面上的最大升级&#xff0c;功能方面有更多增加&#xff0c;与最新macOS系统更加兼容&#xff0c;流畅地与系统性能更加…