VUE基础知识二:计算属性computed、侦听器watch和样式绑定

计算属性computed

在变量发生变化的时候,computed内的计算属性会自动进行重新计算并渲染到页面。(不仅限于数值的运算,可以是对象、字符串、数组等)

data(){
	return {
		count: 2,
		price: 10,
        message: '123'
	}
},
computed: {
	// 当计算属性依赖的内容发生变更时,才会重新计算
	total(){
		return this.price * this.count
	}
},
methods:{
	// 当页面重新渲染,才会重新计算
	getTotal(){
		return this.price * this.count
	}
}
<div>{{total}}</div> <!-- 当动态改变message的时候,这个total值是不会变化的 -->
<div>{{message}} {{getTotal()}}</div> <!-- 当动态改变message的时候,此div会重新渲染,重新调用getTotal方法-->

侦听器watcher

监听属性的变化,在侦听器的函数上有两个参数,分别是修改后和修改前的值。

data(){
	return {
		count:2,
		price:5,
		total:10
	}
},
watch: {
	// current表示当前修改后的值,prev表示历史值
	price(current,prev)	{
		return this.count * current;
	}
}
<div>{{total}}</div>

注意:

  • computedmethod都可以实现的时候,优先使用computed
  • computedwatcher都可以实现的时候,优先使用computed

样式绑定

样式绑定的三种方式:

  • 字符串方式:适用于只绑定一个class;
  • 数组方式:适用于绑定多个class;
  • 对象方式:适用于绑定多个class;
<style>
    .classOne {
        color :red;
    }
    .classTwo {
        font-size:100px;
    }
</style>
data(){
	return {
		classString:'classOne',
		classObject:{ classOne:true,classTwo:false },
		classArray:['classOne','classTwo']
	}
}
template:`<div :class="classArray">hello world!</div>`

这里如果使用的是style属性,不是使用class,style对应的属性值,定义在变量里面,应该怎么去做。如下代码:

data() {
	return{
		styleString:"color:red;font-size:100px;",
		styleObject:{
			color :red;
			font-size:100px;
		}
	}
}
template:`<div :style="styleString">hello world!</div>`
template:`<div :style="styleObject">hello world!</div>`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿洞晓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值