Vue.js知识点杂记

渲染

深刻式响应--页面监听对象或数组型的数据变化,简单的设置某个元素的的值是无效的,要使用push等变异方法,或者使用vue.$set()vue

nextTick--DOM发生变化后会执行写入的回调函数数组

父子组件传值

子传给父--this.$emit()触发事件,传递数据闭包

父传给子--若是是一个对象的话,在父组件的data里要把对象的属性都要声明出来,否则在子组件是渲染不出来的,
同时属性要初始化函数

prop值修改问题--不要轻易修改组件中prop的值(它是用来父组件传值给子组件,随意修改会影响其在父组件里的数据混乱)对于引入类型的数据如数组和对象来讲,它们的值则是数据的地址。这是要区分开来的。this

对prop进行“双向绑定”--在一个包含prop的子组件中,用this.$emit('update:title', newTitle)来表达对其赋新值的意图。而后在父组件中能够监听那个事件并更新一个本地的数据属性
<text-document v-bind:title.sync="doc.title"></text-document>双向绑定

路由

路由前置守卫--想要结束路由守卫,整段代码的逻辑必须有next()进行结尾。code

this.$route--定位到了当前路由的对象,能够获取到query、params、name、path等信息
this$router为VueRouter实例,经过push、replace等函数实现了路由的跳转router

watch监听

watch失效问题--监听对象,要加一个配置 deep: true
由于对象的值是一个引用,咱们改变对象属性的值的时候,改变的不是这个对象的引用,所以监听不到对象

watch中oldVal对于深度监听对象是无效的,其实对于oldValue的值和newValue的值等同这种现象是合理的,由于都指向了同一个引用,值固然是同样的事件

其余

混入--分发vue组件中可复用的功能,混入组件的意思是,其余组件能够使用被混入组件的计算属性

template--语义化标签,把它当作不可见的包裹元素,最后不会渲染出来,通常用于插槽,v-if渲染和v-for渲染

在computed的方法内如传递参数--使用闭包

相关文章
相关标签/搜索