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

Vue——认识day04_计算属性(案例:实时预览)

目录

1.计算属性之姓名案例之插值语法的实现

2.计算属性之姓名案例之methods语法的实现

3.计算属性之姓名案例之计算属性语法的实现

4.计算属性的简写方式



1.计算属性之姓名案例之插值语法的实现

代码示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>姓名案例_插值语法实现</title><script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body><div id="root">姓:<input type="text" v-model="firstName"><br><br>名:<input type="text" v-model="lastName"><br><br><!-- slice(0,3):表示显示三位 --><!-- 全名:<span>{{firstName.slice(0,3)}}-{{lastName}}</span> -->全名:<span>{{firstName.slice(0,3)}}-{{lastName}}</span></div></div></body><script type="text/javascript">Vue.config.productionTip=falsenew Vue({el:'#root',data:{firstName:'W',lastName:'J'}});
</script>
</html>

2.计算属性之姓名案例之methods语法的实现

代码示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>姓名案例_methods实现</title><script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body><div id="root">姓:<input type="text" v-model="firstName"><br><br>名:<input type="text" v-model="lastName"><!-- slice(0,3):表示显示三位 --><br><br>全名:<span>{{getFullName()}}</span><br><br><!-- <button @click="getFullName(firstName,lastName)">点击获取全名</button> --></div></div></body><script type="text/javascript">Vue.config.productionTip=falsenew Vue({el:'#root',data:{firstName:'W',lastName:'J'},methods: {getFullName(firstName,lastName){// alert(firstName + '-' + lastName)return this.firstName + '-' + this.lastName}},});
</script>
</html>

3.计算属性之姓名案例之计算属性语法的实现

        计算属性是Vue中的一种特殊属性,它不存在于数据对象中,而是通过已有属性进行计算得到的。计算属性的实现原理是借助了Object.defineProperty方法提供的getter和setter函数。当初次读取计算属性时,会执行一次getter函数;当依赖的数据发生改变时,会再次调用getter函数。相比于使用methods中的函数来实现相同的计算逻辑,计算属性具有缓存机制,因此效率更高。另外,调试计算属性也更加方便。

        需要注意的是,计算属性最终会出现在Vue实例的vm对象上,可以直接读取和使用。如果需要修改计算属性的值,必须在计算属性的set函数中进行响应式的更新,并确保更新的同时引起计算属性所依赖的数据发生变化。

示例代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>姓名案例_计算属性实现</title><script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body><div id="root">姓:<input type="text" v-model="firstName"><br><br>名:<input type="text" v-model="lastName"><br><br>全名:<span>{{fullName}}</span><br><br><!-- 由于计算属性这里有缓存所以之后的都没有调用get 但是对于method一直都会调用 -->全名:<span>{{fullName}}</span><br><br>全名:<span>{{fullName}}</span><br><br></div></div></body><script type="text/javascript">Vue.config.productionTip=falseconst vm = new Vue({el:'#root',data:{firstName:'W',lastName:'J'},// 计算属性computed:{fullName:{// get的作用:当有人读取fullName时get就会被调用// 返回值就是fullName 的值// get的调用时机:// 1.初次读取fullName时// 2.所依赖的数据发生变化时(防止脏读)get(){return this.firstName + '-' + this.lastName},// set的调用时机:当fullName被修改时set(value){console.log('set:' + value)const arr = value.split('-')this.firstName = arr[0]this.lastName = arr[1]}}}});
</script>
</html>

4.计算属性的简写方式

代码示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>姓名案例_计算属性实现</title><script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body><div id="root">姓:<input type="text" v-model="firstName"><br><br>名:<input type="text" v-model="lastName"><br><br>全名:<span>{{fullName}}</span></div></div></body><script type="text/javascript">Vue.config.productionTip=falseconst vm = new Vue({el:'#root',data:{firstName:'W',lastName:'J'},// 计算属性// 在确定只读不改之后可以采用简写的形式computed:{// 完整写法
/*             fullName:{get(){console.log('get被调用了')return this.firstName + '-' + this.lastName},set(value){console.log('set:' + value)const arr = value.split('-')this.firstName = arr[0]this.lastName = arr[1]}} *///简写// 这里的function就相当于get()// fullName:function(){fullName(){console.log('get被调用了')return this.firstName + '-' + this.lastName}}});
</script>
</html>


这文章真水!!!


http://www.mrgr.cn/news/14561.html

相关文章:

  • 从多维度视角探讨“开源AI智能名片O2O商城小程序”的设计与管理
  • 过滤器和拦截器的使用和原理
  • 在线考试系统的开发成本分析
  • 清华计算几何-线段求交与BO算法
  • 数据主权与隐私保护的深入探讨
  • 作业比赛编号 : 5117 - 2023年算法基础第9次 问题 A: 取余运算
  • 当不显示定义默认成员函数,会出现什么状况
  • 大数据技术之Zookeeper客户端 API 操作(4)
  • ComfyUI SDXL Prompt Styler 简介
  • HarmonyOS NEXT应用开发: 常用页面模板
  • cthub-ssrf通关攻略
  • 数据库系统之逻辑设计
  • ES6随笔
  • 第二讲__提炼
  • 使用Python写贪吃蛇游戏
  • 动态代理和静态代理的区别,动态代理怎么提高网络安全性
  • 结构型设计模式-适配器(adapter)模式-python实现
  • 【香橙派系列教程】(十六) 语音模块与阿里云结合
  • CSR和COO实现spgemm
  • Java面试宝典-java基础02