Vue2学习笔记(计算属性)

通过一个案例,循序渐进的了解计算属性,这个案例通过不同的写法了解VUE的计算属性。

一、使用插值语法做一个示例

html 复制代码
<!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>
<body>
    <div id="root">
        姓:<input type="text" v-model:value="firstname"><br/><br/>
        名:<input type="text" v-model:value="lastname"><br/><br/>
        全名:<span>{{firstname}}-{{lastname}}</span>
    </div>
</body>
<script type="text/javascript">
    Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

    const vm = new Vue({
        el:"#root",
        data:{
            firstname:"李",
            lastname:"国家",
        }
    })
</script>
</html>

二、 基于methods方法实现

html 复制代码
<!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>
<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        姓:<input type="text" v-model:value="firstname"><br/><br/>
        名:<input type="text" v-model:value="lastname"><br/><br/>
        全名:<span>{{fullName()}}</span>
    </div>
</body>
<script type="text/javascript">
    Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

    const vm = new Vue({
        el:"#root",
        data:{
            firstname:"李",
            lastname:"国家",
        },
        methods:{
            //定义一个方法
            fullName(){
                return this.firstname + "-" + this.lastname
            }
        }
    })
</script>
</html>

三、 计算属性

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>姓名案例_计算属性实现</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</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/>
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		const vm = new Vue({
			el:'#root',
			data:{
				firstName:'张',
				lastName:'三',
			},
			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]
					}
				} */
				//简写
				fullName(){
					console.log('get被调用了')
					return this.firstName + '-' + this.lastName
				}
			}
		})
	</script>
</html>
相关推荐
依然范特东33 分钟前
强化学习笔记6--IS、PPO、TD、DQN、Actor-Critic
笔记·算法
zzzll111135 分钟前
0基础入门大模型:一份清晰的学习路线图
人工智能·学习·chatgpt
正经人_x1 小时前
学习日记48:DenseCLIP
学习
DevangLic2 小时前
monkeycode-使用说明
学习·ai
Mxzx品牌2 小时前
佛山招聘软件哪个好:【帅聘网】匹配度高
笔记·其他·生活
九硕智慧建筑一体化厂家3 小时前
无线动能开关|烘焙后厨防潮免布线照明控制方案
运维·笔记·智慧城市
red_redemption3 小时前
自由学习记录(211)
学习
ZZHow10243 小时前
PyTorch深度学习入门笔记(小土堆)P7-14
人工智能·pytorch·笔记·python·深度学习
九硕智慧建筑一体化厂家3 小时前
直流照明|档案库房专用照明,防紫外线、防纸张老化、适配24小时值守
运维·网络·笔记·智慧城市
ThsPool4 小时前
【ENVI二次开发学习整理 02】IDL语言基础与程序设计
学习·中间件