vue教程(三)-slotkeep-alive的使用

一、slot其实就是填坑操作,父组件传递dom结构,是vue提供的一种内置组件(组件知识请查看上篇博客内容)

写法:<slot></slot>

例子:

var child = {template:'<div><slot></slot></div>'} //子组件中预留出坑来,让父组件填坑

Vue.component('my-child',child);//全局注册方式

父中使用

var App = {template:'<my-child><button>填入按钮</button></my-child>'} //父组件中使用子组件,并传入button按钮。

当子组件预留出多个坑时,需要给坑指定name属性,例如

var child = {template:'<div><slot name='one'></slot><slot name='two'></slot></div>'} //子组件中预留出多个坑来,让父组件填坑,则需要指定name属性

父中使用

var App = {template:'<my-child><button slot='one'>填入按钮</button><h1slot='two'>填入标题</h1></my-child>'} //父组件中使用子组件,需使用slot属性指定填入到哪个坑中

二、keep-alive

keep-alive是Vue提供的一个抽象组件,用来对组件进行缓存,从而节省性能,由于是一个抽象组件,所以在v页面渲染完毕后不会被渲染成一个DOM元素

当组件在keep-alive内被切换时组件的activated、deactivated这两个生命周期钩子函数会被执行。

因此再动态变化填充dom时,一般使用keep-alive包裹,在上述两个生命周期钩子中进行相关操作,从而达到业务需要。

注:git上有开发的项目作为例子,有兴趣的可以下载学习。源代码已上传git:Git地址QQ交流群

                                                                                                                                           ①群:699050440

                                                                                                                                           ②群:824313640

                                                                                 

原文地址:https://www.cnblogs.com/fatpig-wf/p/11244294.html