首页 > 其他分享 >[Vue] vue学习笔记(2): 监视属性 & 计算属性

[Vue] vue学习笔记(2): 监视属性 & 计算属性

时间:2023-11-28 12:34:28浏览次数:20  
标签:vue changed value Vue fullname was isDone 属性

关于计算属性

案例:分别输入姓和名,打印全名

基本代码
<div id='root'>
	first name<input type="text" v-model="firstname"><br/><br/>
	last name<input type="text" v-model="lastname"><br/><br/>
	fullname: <span>???</span>
</div>

<script type="text/javascript">
new Vue({
	el: "#root",
	data: {
		firstName: "Aisen",
		lastName: "Rowell"
	}
})
</script>
  1. 使用插值语法
    fullname: <span>{{firstname}} - {{lastname}}</span>
  2. methods属性
    fullname: <span>{{fullname()}}</span>
vue对象配置
<!---vue instance--->
<script type="text/javascript">
new Vue({
	el: "#root",
	data: {
		firstName: "Aisen",
		lastName: "Rolwell"
	},
	methods: {
		fullname(){
			return this.firstname + '-' + this.lastname
		}
	},
})
</script>

当然也可以使用计算属性

计算属性

读取的属性需要通过已有的属性计算得来

fullname: <span>{{fullname()}}</span>
<!---vue instance--->
<script type="text/javascript">
const v = new Vue({
	el: "#root",
	data: {
		firstName: "Aisen",
		lastName: "Rowell"
	},
	computed: {
		fullname: {
			// getter was called when fullname was read
			// return a value as fullname
			get() {
				console.log("getter called.")
				return this.firstname + '-' + this.lastname
			}
			
			// setter was called when the value was changed
			set(value) {
				console.log("value changed")
				const arr = value.split('-')
				this.firstname = arr[0]
				this.lastname = arr[1]
			}
		}
	},
})
</script>

简写: 只有当只读取数据的情况时,即setter被忽略

fullname: <span>{{fullname}}</span>
<!---vue instance--->
<script type="text/javascript">
const v = new Vue({
	el: "#root",
	data: {
		firstName: "Aisen",
		lastName: "Rowell"
	},
	computed: {
		// 完整写法
		/*fullname: {
			// getter was called when fullname was read
			// return a value as fullname
			get() {...}
			// setter was called when the value was changed
			set(value) {...}
		}*/
		
		// 简写,注意这不是函数,而是读取数值时对应的getter方法简写
		fullname(){
			console.log("getter called.")
			return this.firstname + '-' + this.lastname
		}
	},
})
</script>
比较methods属性

优势:存在缓存机制,可以复用。使用计算属性,重复读取某一值时,实际只调用一次;methods属性则需要每次调用方法

监视属性

监视属性中的对象一旦发生变化,对象中的方法会被调用,更新前后的值也会被记录
❗被监视的属性必须存在才能成功监视 ❗ 包括那些来自data属性和computed属性

new Vue({
	// ...
	watch: {
		// value to be watched, was initialied in data property
		isDone: {
			immediate: true, // 初始化时就调用一次handler
			// handler was called when isDone is changed
			handler(newValue, oldValue){
				console.log("isDone is changed to ", oldValue)
			}
		}
	}
})

深度监视

写在前面

标签:vue,changed,value,Vue,fullname,was,isDone,属性
From: https://www.cnblogs.com/Akira300000/p/17861351.html

相关文章

  • VUE2中使用阿里云播放器AliPlayer
    简述基于Vue的播放器单页应用,利用web播放器sdk进行视频点播,包含播放列表、字幕、多语言、自适应码率,皮肤自定义等功能Web播放器文档前情提示系统:一说部分截图、链接等因过期、更换域名、MD语法等可能不显示,可联系反馈(备注好博文地址),谢谢❤带有#号、删除线、不操作、不......
  • VUE2中使用阿里云播放器AliPlayer
    简述基于Vue的播放器单页应用,利用web播放器sdk进行视频点播,包含播放列表、字幕、多语言、自适应码率,皮肤自定义等功能Web播放器文档前情提示系统:一说部分截图、链接等因过期、更换域名、MD语法等可能不显示,可联系反馈(备注好博文地址),谢谢❤带有#号、删除线、不操作、不......
  • Vue打包发布
    打包发布目标:明确打包的作用说明:vue脚手架只是开发过程中,协助开发的工具,当真正开发完了,脚手架不参与上线打包的作用:将多个文件压缩合并成一个文件语法降级lesssassts语法解析....打包后,可以生成,浏览器能够直接运行的网页命令:npmrunbuild打包完成后,你会在项目根目......
  • WPF数据绑定对象Binding中的辅助属性
    数据绑定方向——ModelnamespaceSystem.Windows.Data{publicenumBindingMode{TwoWay=0,OneWay=1,OneTime=2,OneWayToSource=3,Default=4}}TwoWay=0,绑定的双方,值可以相互传递OneWay=1,绑定......
  • 如何在vue中注册和使用全局组件
    1、在main.js入口文件中,使用Vue.component()方法注册组件 2、在需要使用组件的地方进行标签使用即可<MyCount></MyCount>......
  • vue 上传照片插件
    Vue是一种流行的JavaScript框架,拥有轻量级、直观且易于学习的特点,并提供丰富的插件集合。其中,上传照片插件是Vue的常用插件之一。上传照片插件能够快速地将照片上传到服务器,支持多图上传、拍照上传和拖拽上传等功能。此外,插件还可以对上传过程进行自定义,如上传时的进度条显示、图片......
  • Vue上传视频组件
    整合上传组件<el-form-itemlabel="上传视频"><el-upload:on-success="handleVodUploadSuccess":on-remove="handleVodRemove":before-remove="beforeVodRemove":on-exceed=&qu......
  • vue 视频上传组件
    组件:<template><divclass="upload-box"><divclass="avatar-uploader-box"><!--图片预览--><div:key="index"class="video-preview"v-for="(item,index)invideoList"......
  • vue图片上传视频
    图片上传是现在Web开发中常见的需求之一。而使用Vue框架可以使得这一过程更加方便和有效。在Vue中使用预先开发好的组件,可以快速地实现图片上传功能。//在Vue组件中引用插件importVueUploadComponentfrom'vue-upload-component'//在模板中引用组件上面的代码使用VueUpload......
  • vue上传视频框架
    在Web应用程序中经常需要用户上传视频,以便内容分享,教程和其他目的。Vue.js是一种流行的JavaScript框架,它提供了一种方便的方式来设计交互式和动态的用户界面,因此Vue上传视频框架是一种非常受欢迎的技术。Vue.js框架提供了各种插件和工具,它们可以帮助开发人员轻松地实现视频上传功能......