Vue.js 计算属性的基本使用,复杂使用 ,set 和 get,计算属性与methods的对比 和 计算属性与侦听器

本文详细介绍了Vue.js中计算属性的基本使用、复杂应用场景,包括多种计算总价的方法,如for循环、Map等。同时,讨论了计算属性的setter和getter,与methods和侦听器的对比,强调了计算属性的缓存优化特性及其在数据变化时的响应策略。
摘要由CSDN通过智能技术生成

🚗个人主页:最好的人啊

🚌系列专栏:HTML/CSS

🚐推荐一款模拟面试、刷题神奇、从基础到大厂的面试题库,要想走上人生巅峰迎娶白富美赶快点击这个网站⚡不要犹豫,白富美在向你招手,快来注册吧!

 

目录

前言

我们为什么要引用计算属性?

计算属性的基本使用

计算属性的复杂使用 

计算书本的总价的几种方法

第一种  for循环遍历

第二种   for in  循环遍历

第三种  for of  遍历

第四种  foreach   遍历

第五种  Map   遍历

第六种  filter  遍历

第七种   reduce 遍历

第八种   some 遍历

完整代码

计算属性中的set和get

computed 的  getter/setter

计算属性与methods的对比

计算属性与侦听事件



前言

我们为什么要引用计算属性?

模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护

表达式的计算逻辑可能会比较复杂,使用计算属性可以使模板内容看起来更加的整洁

例如

<div id="app">
  {
   { message.split('').reverse().join('') }}
</div>2>

计算属性的基本使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			<h2>您的firstname:{
   {firstName}}</h2>
			<h2>您的lastname:{
   {lastName}}</h2>
			<h2>您的fullname是从计算属性中得到:{
   {fullName}}</h2>
			<h2>您的fullname是从方法中得到:{
   {getFullName()}}</h2>
			
		</div>
		<script>
			const vm = new Vue({
				el:'#app',
				data(){
					return {
						firstName:'zhang',
						lastName:'san'
					}
				},
				methods:{
					getFullName(){
						return this.firstName + this.lastName
					}
				},
				computed:{
    //计算属性 一定要有一个返回值 在页面中渲染时是不需要加小括号的
					fullName(){
						return this.firstName + this.lastName
					}
				}
			})
		</script>
	</body>
</html>

计算属性的复杂使用 

		<div id="app">
			<h2>您的总价:{
   {totalPrice}}</h2>
		</div>

计算书本的总价的几种方法

						books: [	
						{
   id: 110,name: "JavaScript从入门到入土",price: 119},
						{
   id: 111,name: "Java从入门到放弃",price: 80},
						{
   id: 112,name: "编码艺术",price: 99},
						{
   id: 113,name: "代码大全",price: 150},
						]

第一种  for循环遍历

          
                // for循环遍历
                totalPrice(){
                    let total=0;
                    for (let i = 0; i < this.books.length; i++) {
                        total+=this.books[i].price                       
                    }
                    return total
                }
 
            }

第二种   for in  循环遍历


                totalPrice(){
                    let total = 0;
                    for (const item in this.books) {
                        total+=this.books[item].price
                    }
                    return total
                }

第三种  for of  遍历

                
                totalPrice() {
                    let total = 0;
                    for (let index of this.books) {
                        total += index.price
                    }
                    return total
                }

第四种  foreach   遍历

                
                totalPrice(){
                    let total = 0;
                    this.books.forEach(item => {
                        total+= item.price
                    })
                    return total
                }

第五种  Map   遍历

                totalPrice(){
                    let total = 0;
                    this.books.map(item => {
                        total+= item.price
                    })
                    return total
                }

第六种  filter  遍历

                
                totalPrice(){
                    let total = 0;
                    this.books.filter(item => {
                        total+= item.price
                    })
                    return total
                }

第七种   reduce 遍历

                
                totalPric
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值