vue tips

传入一个对象的所有属性

 如果你想要将一个对象的所有属性都作为 prop 传入,你可以使用不带参数的 v-bind。例如,对于一个给定的对象 post:
post: {id: 1,title: 'My Journey with Vue'}
下面的模板:
<blog-post v-bind="post"></blog-post>
等价于:
<blog-post v-bind:id="post.id" v-bind:title="post.title"></blog-post>   

监听组件的生命周期

比如有父组件 Parent和子组件 Child,如果父组件监听到子组件挂载 mounted就做一些逻辑处理,常规的写法可能如下:
// Parent.vue 
< Child @mounted = "doSomething" /> 
// Child.vue 
mounted() { this .$emit( "mounted" ); }
这里提供一种特别简单的方式,子组件不需要任何处理,只需要在父组件引用的时候通过 @hook来监听即可,代码重写如下:
< Child @hook :mounted= "doSomething" />

###

假设我们在写一个博客网站,需求是从/post-page/a,跳转到/post-page/b。
但是页面跳转后数据竟然没更新!原因是vue-router”智能地”发现这是同一个组件,
然后它就决定要复用这个组件,所以你在created函数里写的方法压根就没执行。
通常的解决方案是监听$route的变化来初始化数据,
优雅的实现是给router-view添加一个unique的key,这样即使是公用组件,只要url变化了,就一定会重新创建这个组件。
(虽然损失了一丢丢性能,但避免了无限的bug)。同时,注意我将key直接设置为路由的完整路径,一举两得