vue computed计算属性getter 与setter的使用

getter 读调用
setter 写调用

计算属性的 setter
计算属性默认只有 getter,不过在需要时你也可以提供一个 setter

getter的使用,如下:

<template>
	<div class="page">
		<p>{{firstName}}</p>
		<p>{{lastName}}</p>
		<p>{{fullName}}</p>
	</div>
</template>
<script>
	export default {
		data() {
			return {
				firstName: 'Foo',
				lastName: 'Bar'
			}
		},
		computed: {
			fullName: {  //仅读
				get: function() {
					return this.firstName + ' ' + this.lastName
				}
			}
		}
	}
</script>

setter的使用,如下:

<template>
	<div class="page">
		<ul>
			<li v-for='(item,index) in tableData' :class='{activeClass:currentIndex == index}' @click='changeCurrent(index)'>{{item.id}}个:{{item.title}}
			</li>
		</ul>
		<h5>选中的标题:{{currentTitle}}</h5>
	</div>
</template>
<script>
	export default {
		data() {
			return {
				tableData: [{
						id: 1,
						title: 'title1',
					},
					{
						id: 2,
						title: 'title2'
					},
					{
						id: 3,
						title: 'title3'
					}
				],
				currentIndex: 0
			}
		},
		//计算属性
		computed: {
			currentTitle: {
				// getter 读调用
				get: function() {
					console.log('getter666')
					return this.tableData[this.currentIndex].title;
				},
				// setter  写调用
				set: function(index) {
					console.log('setter666')
					this.currentIndex = index;
				}
			}
		},
		methods: {
			changeCurrent(index) {
				this.currentTitle = index;
			}
		}
	}
</script>
<style>
	.page {
		margin: 20px;
	}

	ul li {
		list-style: none;
		cursor: pointer;
		line-height: 30px;
	}

	.activeClass,
	h5 {
		color: red;
	}
</style>

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值