上一节了解的是计算属性的默认简写,只能读取,不能修改。

什么意思呢?很简单,我们知道计算属性是依赖数据动态计算一个值,那我可不可以直接this.计算属性 = xxx 来修改计算属性的结果呢?这其实是不行的!因为上一节中我们写的是计算属性的默认简写,只能构读取数据,如果要进行修改,必须写它的完整形式。

Vue 中计算属性的完整写法涉及到定义一个对象,该对象包含 get 和 set 方法,分别用于获取和设置计算属性的值。这种写法允许我们不仅在依赖其他数据时动态计算一个值,还能监听对该计算属性的直接赋值操作,并在值被设置时执行相应的逻辑。

实例:改名卡

实现功能:

依赖Vue实例数据动态显示姓和名,同时根据表单输入更改姓和名。

思路:

使用get()方法动态渲染,然后使用v-model绑定表单输入,同时使用set()方法修改Vue实例数据,最后再次使用get()方法动态渲染。

代码:

html:

<div id="app">
姓:<input v-model="firstName" type="text"> +
名:<input v-model="lastName" type="text"> =
<span>{{ fullName }}</span>
<br>
改名:<input @keyup.enter="changeName()" v-model="newname" style="width: 100px;">
<button @click="changeName()">改名卡</button>
</div>

js:

<script>
const app = new Vue({
el: '#app',
data: {
firstName: '马',
lastName: '超',
newname: ''
},
methods: {
// 该函数不能设置computed的属性
changeName(){
this.fullName = this.newname
}
},
// 计算属性完整写法:get()+set(),获取和修改
// 修改的底层逻辑:首先修改的值被传递给set()的形参
// 然后修改数据,最后再执行一遍get()
computed: {
fullName:{
get(){
return this.firstName + this.lastName
},
//对字符串进行切片处理获得姓和名
set(value){
this.firstName = value.slice(0,1)
this.lastName = value.slice(1)
}
}
}
})
</script>

Vue学习:7.计算属性2的更多相关文章

  1. vue学习笔记 计算属性(四)

    计算属性就是vue实例里的computed属性,对应一个对象,里面可以放各种方法,方法的作用就是可以生成和数据变量对应的计算后的变量,跟数据相关的复杂逻辑变量,都可以使用计算属性实现,computed ...

  2. VUE学习之计算属性computed

    计算属性:computed 先看一下官网的说法 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="ex ...

  3. Vue学习之--------计算属性(2022/7/9)

    文章目录 1.计算属性 1.1 计算属性实现 1.1.1 基础知识 1.1.2 代码实例 1.1.3 测试效果 1.2 计算属性简写 1.2.1 简写代码 1.3 使用插值语法实现 1.3.1 代码实 ...

  4. Vue学习之vue中的计算属性和侦听器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Vue的computed计算属性是如何实现的

    一个开始 有如下代码,full是一个计算属性,开始,他的值是'hello world',1s后,msg变成了‘I like’, full的值同步变成了'I like world';其原理解析来看一下. ...

  6. Vue.js学习 Item5 -- 计算属性computed与$watch

    在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护.这就是为什么 Vue.js 将绑定表达式限制为一个表达式.如果需 ...

  7. 关于vue.js的计算属性练习代码

    参照官网联系如下: <!DOCTYPE html><html lang="en"><head> <meta charset="U ...

  8. Vue 过滤器与计算属性

    过滤器 V1.x 版本 过滤器基础 过滤器是一个通过输入数据,能够及时对数据进行处理并返回一个数据结果的简单函数.Vue有很多很便利的过滤器,可以参考官方文档,http://cn.vuejs.org/ ...

  9. 关于vue的使用计算属性VS使用计算方法的问题

    在vue中需要做一些计算时使用计算属性和调用methods方法都可以达到相同的效果,那么这两种使用方式的区别在哪里: <div id="example"> <p& ...

  10. vue.js实战——计算属性

    1set和get: 注意: this.lastName=names[names.length-1];//解决连续输入空格后lastName消失的问题 练习代码如下: <!DOCTYPE html ...

随机推荐

  1. HarmonyOS NEXT应用开发—自定义视图实现Tab效果

    介绍 本示例介绍使用Text.List等组件,添加点击事件onclick,动画,animationTo实现自定义Tab效果. 效果预览图 使用说明 点击页签进行切换,选中态页签字体放大加粗,颜色由灰变 ...

  2. 阿里云贾扬清:大数据+AI工程化,让数据从「成本」变为「资产」

    简介: 近年来,数字经济发展迅速,企业转型背后频频涌现「数字力量」的身影.云计算.大数据.人工智能的快速融合形成了数字经济的新基建,也为数字经济发展带来了新的机遇. 5 月 20 日,阿里巴巴副总裁. ...

  3. Flow vs Jenkins 实操对比,如何将Java应用快速发布至ECS

    ​简介:Jenkins 由于其开源特性以及丰富插件能力,长久以来都是中小企业搭建 CICD 流程的首选.不过 Jenkins 存在维护成本高.配置复杂等缺点,云效 Flow 较好地解决了这些问题. 本 ...

  4. [FE] uni-app Card 卡片组件 uni-card 用法

    使用 uni-card 和其它组件没有什么区别,关注支持的属性和事件即可. 对于属性,需要特别注意值的类型,比如不要把非字符串的当做字符串处理. 举例,如下 is-full 需要 Boolean 类型 ...

  5. WPF 下拉框选项做鼠标 Hover 预览效果

    本文来告诉大家如何在 WPF 中,在 下拉框 ComboBox 里面,鼠标移动到 ComboBoxItem 上时,自动触发对应的事件,用来预览此选项值.例如我在实现一个颜色下拉框,此时我可以通过点击下 ...

  6. SQL 多表关联更新语句

    A表WHERE条件来自B表查询结果集 UPDATE a SET a.is_sync = 0 FROM A表 a LEFT JOIN B表 b ON a.order_id = b.order_id AN ...

  7. Java中使用try代码块自动关闭各种流(IO流……)

    推荐写在 try 的括号中 /** 方式一.方式二是等价的 * <li>推荐使用方式一</li> * @since 2023/5/18 0018 * @author CC ** ...

  8. Nifi:Nifi中的Controller Service

    Service简介 首先Nifi中的Controller Service 和我们MVC概念中的Controller Service不是一个概念,Nifi中的Controller Service更像是和 ...

  9. Splashtop和 TiFlux 宣布建立合作伙伴关系

    2020年9月21日,远程访问解决方案的全球领导者 Splashtop Inc. 和面向 IT 服务提供商的 IT 解决方案公司 TiFlux 宣布建立合作伙伴关系,以整合 Splashtop 远程访 ...

  10. 2022年官网下安装ActiveMQ最全版与官网查阅方法

    目录 一.环境整合 构建工具(参考工具部署方式) 二.下载安装 1.百度搜索ActiveMQ,双击进入.或访问官网https://activemq.apache.org/ 2.进入下载界面,两种方式, ...