文章目录
- 1 数据代理
- 1.1 回顾Object.defineproperty方法
- 1.2 何为数据代理
- 1.3 Vue中的数据代理
- 2 事件处理
- 2.1 事件的基本使用
- 2.2 事件修饰符
- 2.3 键盘事件
1 数据代理
1.1 回顾Object.defineproperty方法
<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>回顾Object.defineproperty方法</title></head><body><script type="text/javascript" >let number = 18let person = {name:'张三',sex:'男',}Object.defineProperty(person,'age',{get(){console.log('有人读取age属性了')return number},set(value){console.log('有人修改了age属性, 且值是',value)number = value}})console.log(person)</script></body>
</html>
1.2 何为数据代理
<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>何为数据代理</title></head><body><script type="text/javascript" >let obj = {x: 100}let obj2 = {y: 200}Object.defineProperty(obj2,'x',{ get(){return obj.x },set(value){obj.x = value}})</script></body>
</html>
1.3 Vue中的数据代理
<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>Vue中的数据代理</title><script type="text/javascript" src="../js/vue.js"></script></head><body><div id="root"><h2>学校名称:{{name}}</h2> <h2>学校地址:{{address}}</h2></div></body><script type="text/javascript">Vue.config.productionTip = false const vm = new Vue({ el:'#root',data:{name:'尚硅谷',address:'宏福科技园'}})</script>
</html>
2 事件处理
2.1 事件的基本使用
<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>事件的基本使用</title><script type="text/javascript" src="../js/vue.js"></script></head><body><div id="root"><h2>欢迎来到{{name}}学习</h2><button @click="showInfo1">点我提示信息1(不传参)</button><button @click="showInfo2($event, 66)">点我提示信息2(传参)</button></div></body><script type="text/javascript">Vue.config.productionTip = false const vm = new Vue({el:'#root',data:{name:'尚硅谷',},methods:{ showInfo1(event){alert('同学你好!')},showInfo2(event, number){console.log(event, number)alert('同学你好!!')}}})</script>
</html>
2.2 事件修饰符
<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>事件修饰符</title><script type="text/javascript" src="../js/vue.js"></script><style>*{margin-top: 20px;}.demo1{height: 50px;background-color: skyblue;}.box1{padding: 5px;background-color: skyblue;}.box2{padding: 5px;background-color: orange;}.list{width: 200px;height: 200px;background-color: peru;overflow: auto;}li{height: 100px;}</style></head><body><div id="root"><h2>欢迎来到{{name}}学习</h2><a href="http://www.atguigu.com" @click.prevent="showInfo">点我提示信息</a><div class="demo1" @click="showInfo"><button @click.stop="showInfo">点我提示信息</button></div><button @click.once="showInfo">点我提示信息</button><div class="box1" @click.capture="showMsg(1)">div1 输出: 1<div class="box2" @click="showMsg(2)">div2 输出: 1 2</div></div><div class="demo1" @click.self="showInfo"><button @click="showInfo">点我提示信息</button></div><ul @wheel.passive="demo" class="list"> <li>1</li><li>2</li><li>3</li><li>4</li></ul></div></body><script type="text/javascript">Vue.config.productionTip = false new Vue({el:'#root',data:{name:'尚硅谷'},methods:{showInfo(e){alert('同学你好!')console.log(e.target)},showMsg(msg){console.log(msg)},demo(){ for (let i = 0; i < 100000; i++) {console.log('#')}console.log('累坏了')}}})</script>
</html>
2.3 键盘事件
<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>键盘事件</title><script type="text/javascript" src="../js/vue.js"></script></head><body><div id="root"><h2>欢迎来到{{name}}学习</h2><input type="text" placeholder="按下回车提示输入" @keydown.huiche="showInfo"> </div></body><script type="text/javascript">Vue.config.productionTip = false Vue.config.keyCodes.huiche = 13 new Vue({el:'#root',data:{name:'尚硅谷'},methods: {showInfo(e){console.log(e.target.value)}},})</script>
</html>