Vue之MVVM模型

MVVM模型

1.创建一个vue实例

new Vue({
})
关于MVVM模型的解释:

M:模型(model):data中的数据
V:视图(View):模板代码
VM:视图模型(ViewModel)

观察可以发现:

1.data中所有的属性,最后都出现在了vm身上
2.vm身上所有的属性及vue原型上所有属性,在Vue模板中可以直接使用

<script type='text/javascript'>
let number= 18;
let person{
	name:'John',
	address:'Hangzhou'
}
Object.defineProperty(person,'age',{
	//进入配置对象模块
	value:18,//年龄设置18
	enumerable:true,//可以被枚举
	writable:true,//可以被修改
	configurable:true;//控制属性可以被删除
})

或者是

Object.defineProperty(person,'age',{
	//进入配置对象模块
	get(){
	//当age属性被读取时就会调用这个函数
console.log('读取成功');
return number;
	}
set(value){
//当age被修改时就会调用这个函数
	console,log('age被修改为',value);
	number=value;
	//这样console.log(person)就会得到修改过后的年龄值
}
})

2.数据代理

何为数据代理呢?

数据代理就是通过一个对象对另外一个对象中属性的操作(读/写)

vue中数据代理的好处:更加方便的操作data中的数据。

基本原理:

通过Object.defineProperty()来把data对象中的所有属性添加到vm上,为每一个添加到vm上的属性,都指定一个getter/setter,在getter/setter内部去操作data中的属性。

3.vue事件处理
(1)vue的事件绑定
使用v-on:xxx 或@xxx绑定事件,其中xxx是事件名。比如: v-on:click绑定vue的点击事件。@click
(2)事件的回调需要配置在methods对象中,最终会在vm上。
(3)methods中配置的函数,不要用箭头函数,否则this就不再指向vm了。
(4)methods中配置的函数,都是被Vue所管理的函数,this指向的是vm或者组件实例化对象。
(5)@click='demo’和@click = 'demo($event)'效果一致,后置可以传递参数。

4.Vue事件修饰符

(1)prevent:阻止默认事件

(2)stop:阻止事件冒泡

(3)once:事件只触发一次。

(4)capture:使用事件的捕获模式

(5)self:只有event.target是当前操作的元素时才触发事件

(6)passive:事件的默认行为立即执行,无需等待事件回调。

5.键盘事件

<div id='root'>
	<input type='text' placeholder = '按下回车输入提示' @keyup.enter='showinfo'>
	//按下回车键,在控制台输出按键的编码
</div>
<script type='text/javascript'>
	new Vue(
	{
		el:'#root',
		data:{
		name:'hdu'
		},
		methods:{
		showinfo(e){
		if(keyCode!=13) return
		console.log(e.keyCode)
		}
		}
	}
	)
</script>

Vue中常见的按键别名;
换行;tab(特殊,需要配合keydown使用)
系统修饰键: ctrl,alt,shift,meta
(1)配合keyup使用:按下修饰键的同时,再按下其他键,然后释放其他键,事件才会被触发。
(2)配合keydown使用:正常触发事件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值