Vue 侦听器 watch

摘要:
当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。2.基础用法当msg属性的值发生改变时,就会触发侦听器的执行letvm=newVue3.应用场景:用户注册时,验证用户名是否存在用户名:{{msg}}密码:letvm=newVue

1. 侦听器 watch


Vue 提供了一种更通用的方式来观察和响应 Vue 实例上的数据变动:侦听属性

当属性发生改变时,自动触发属性对应的侦听器。

当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。

2. 基础用法


当 msg 属性的值发生改变时,就会触发侦听器的执行

<div id="app">
	<input type="text" v-model="msg">
</div>
<script>
	let vm = new Vue({
		el: '#app',
		data: {
			msg: 'Hello'
		},
		watch: {
			msg: function(){
				console.log(this.msg)
			}
		}
	})
</script>

3. 应用场景:用户注册时,验证用户名是否存在


<div id="app">
	用户名: <input type="text" name="name" v-model.lazy="username">
	<span :style="msgStyle">{{ msg }}</span>
	<br>
	密码: <input type="password" name="pass">
</div>
<script>
	let vm = new Vue({
		el: '#app',
		data: {
			msg: '',
			username: '',
			msgStyle: ''
		},
		watch: {
			username: function(){
				// 发送ajax请求 验证用户名
				if (this.username == 'liang') {
					this.msg = '该用户名已存在'
					this.msgStyle = {
						color: 'red',
						fontWeight: 'bold'
					}
				} else {
					this.msg = '用户名可以注册'
					this.msgStyle = {
						color: 'green',
						fontWeight: 'bold',
					}
				}
			}
		}
	})
</script>

免责声明:文章转载自《Vue 侦听器 watch》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇计划助手V1.0-微信小程序(QQ小程序)-源代码分享阿里云虚拟主机安装禅道总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue 数组去重

test() { const arr =[ { name: '张三', age: 22}, { name: '李四', age: 22}, { name: '张三', age:...

Chrome实用调试技巧

如今Chrome浏览器无疑是最受前端青睐的工具,原因除了界面简洁、大量的应用插件,良好的代码规范支持、强大的V8解释器之外,还因为Chrome开发者工具提供了大量的便捷功能,方便我们前端调试代码,我们在日常开发中是越来越离不开Chrome,是否熟练掌握Chrome调试技巧恐怕也会成为考量前端技术水平的标杆。 介绍Chrome调试技巧的文章很多,本文结合我自...

VUE 使用中踩过的坑

vue如今可谓是一匹黑马,github star数已居第一位!前端开发对于vue的使用已经越来越多,它的优点就不做介绍了,本篇是我对vue使用过程中以及对一些社区朋友提问我的问题中做的一些总结,帮助大家踩坑。如果喜欢的话可以点波赞,或者关注一下,希望本文可以帮到大家! 1.路由变化页面数据不刷新问题 出现这种情况是因为依赖路由的params参数获取写在cr...

Vue全家桶

一、简介 武林至尊,宝刀React,号令天下,莫敢不从,Vue不出,谁与争锋本文介绍Vue全家桶:Vue+Vue-router+Vuex+axios。 二、Vue Vue 是一套用于构建用户界面的渐进式框架,和React,都自称自己只关注视图层 1.引入Vue 开发环境: <script src="https://cdn.jsdelivr.net/n...

vue项目中引入 html2canvas ,控制台报错 Cannot assign to read only property 'className' of object '#&amp;lt; SVGSVGElement &amp;gt;'

 本人遇到该错误,找了好久原因,终于找到了原因, 一开始以为是后台管理系统的模板问题有冲突导致的,于是寻找最初模板使用同样方法引入,竟然没有报错,啊!这个时候就很神伤了。 仔细研究报错内容<SVGSVGElement>,难道和我使用的SVG矢量图有关系?于是尝试把有svg标签的地方全都注释掉了,结果,好了!!!! 原因大致可以归结为,html...

2018年最值得关注的30个Vue开源项目

译者按: 学习优秀的开源项目是提高代码水平最有效的方式。 原文: 30 Amazing Vue.js Open Source Projects for the Past Year (v.2018) 译者: Fundebug 直接来源:https://www.cnblogs.com/Alan2016/p/9116723.html 为了保证可读性,本...