好程序员Web前端教程分享Vue学习心得

本文分享了Vue.js的学习心得,探讨了组件化设计、组件间通信、DOM操作、数据双向绑定的实现原理,以及计算属性与观察属性的区别。同时,对比了v-if与v-show在按需加载和显示隐藏方面的应用。

好程序员Web前端教程分享Vue学习心得,Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。Vue+webpack也成了很多开发项目的标配。在学习的过程中也碰到了很多坑,在这里分享下自己学习的一些心得。

 

Vue是组件化的,每一个部分都可以做成一个组件,但是这里就出现了一个问题,就是组件之间如果涉及到传值问题,就会比较麻烦。如果涉及到兄弟组件的传值,我们可以给Vue实例上挂载一个$bus属性

 

好程序员

 

  之后可以通过this.$bus.$emit来推送数据,this.$bus.$on来接收数据。

 

Vue本身并不鼓励使用DOM操作(并不是不能),如果你希望获取到节点,那么可以通过ref属性做到。

 

好程序员

 

  然后可以通过this.$refs访问到所有具有ref属性的节点。

 

好程序员

 

  如果你希望获取input的value值,你还可以通过v-model属性做到。V-model实际上实现了数据的双向绑定。把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新。如果用户更新了View,Model的数据也自动被更新了,这种情况就是双向绑定。什么情况下用户可以更新View呢?填写表单就是一个最直接的例子。当用户填写表单时,View的状态就被更新了,如果此时MVVM框架可以自动更新Model的状态,那就相当于我们把Model和View做了双向绑定。Vue是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来实现数据的双向绑定的。

 

Vue本身提供了特有的计算属性computed。经常有人会分不清computed和watch。关于computed和watch的比较,computed是计算属性,会被混入到Vue实例中,计算属性具有依赖性,如果依赖的那个数值没有发生改变,那么就会执行一次,除非依赖发生改变,它才会重新开始计算。watch是观察属性,Vue将会在实例化的时候调用watch,遍历watch对面的每一个属性,当其中属性发生变化时,都会触发watch。以上两种都不能使用箭头函数来定义,因为箭头函数是绑定了父级作用域的上下文,此时的this并没有指向Vue实例。

 

另外一个容易弄混的是指令v-if和v-show。两者的区别是,v-if和v-show都能够控制组件的显示和隐藏,区别在于v-show为false的时候页面加载的时候就会把组件加载进来,只是把组件的display属性设置为none而已,然后v-if为false的,组件是不会加载进来的,只有当值为true的时候才会把组件加载进来,所以实现按需加载就可以使用v-if,只是控制组件的显示隐藏就可以使用v-show。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值