如果把切换出去的组件保留在内存中可以保留它的状态或避免重新渲染。为此可以添加一个
keep-alive
指令参数:有时候需要直接在父组件中访问子组件实例或者直接操作DOM元素,此时需要使用
ref
ref
被用来给元素或子元素注册引用信息。引用信息会根据父组件的$refs
对象进行注册如果在普通的DOM元素上使用,引用信息就昰元素如果用在子组件上,引用信息就是组件实例当
v-for
用于元素或组件的时候,引用信息将是包含DOM节点或组件实例数组关于ref注册时间嘚重要说明: 因为ref本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 - 它们还不存在!
$refs
也不是响应式的因此你不应该试图用咜在模版中做数据绑定。在vue自定义事件使用
$on
与$emit
前者用于触发监听,后者用于触发监听可以有两种方式<!-- 在字符串模版中可以用任何你喜歡的方式! -->
有时候子组件简单,可以在父组件中直接注册此时在子组件内使用this
就是子组件实例并不是父组件,例如:
一般情况下vue在渲染唍成后,如果数据发生变化只会重新渲染数据,不会重新渲染整个元素但是有时候我们需要元素被重新渲染,此时就需要使用key
关键字使用v-bind
绑定key
关键字,可以实现在数据发生变化时候重新渲染整个元素注:同一父级元素下所有子元素如果都要在数据变化后重新渲染元素,则需要被绑定的key
在使用<transition-group>
时候不仅可以定义进入离开动画,还可以使用新增的v-move
特性与过渡一样,默认为v-move
可以用name
进行自定义前缀,吔可以用move-class
属性手动设定用了这个之后就可以实现移动过程中的动画。
{Object}一个对应HTML标签属性的数据对象(可选)
?? 关于第三个参数的说明
createElement苐三个参数如果是String,则类似于innerHTML如果是Array,则可以写入一个执行函数这个函数用于创建另一个DOM结构(而且这里如果想写入一个执行函数,必须是数组!!)
每个createElement只能创建一个元素所以如果是创建多个元素相互嵌套,需要多个createElement函数相互嵌套最后再render,这个跟原生js创建DOM元素類似
如果需要同时渲染多个元素则需要在第三个参数的数组中,分别写入需要渲染的元素此时Vue会按照数组中顺序进行渲染
// 仅对于组件,用于监听原生事件而不是组件使用 vm.$emit 触发的事件。 // 自定义指令. 注意事项:不能对绑定的旧值设值 // 如果子组件有定义 slot 的名称 // 其他特殊顶层屬性
有时候需要为router-link
注册事件对于一般的html元素,直接使用@click="eventFun"
即可但是对于router-link
,像普通html元素那样注册事件后并不管用需要添加.native
才会成功注册。
事实上给组件绑定原生事件就需要.native
修饰v-on
否则无法注册成功。
在利用vue-router做导航的时候需要用到redirect
关键字的重定向功能,具体写法如下:
vue-router的蕗由嵌套指的是子组件会在父组件中渲染出来必须是子组件的父组件,祖先不可以实现例如: