vue slot
2017-11-01 11:41 改吧 阅读(675) 评论(0) 编辑 收藏 举报一般我发现slot都是用在子组件 不知道对不对,不对的请留言指教 ,谢谢谢谢
使用slot场景一:
子组件Minput.vue
<input type='text'/>
父组件 Minput
<Minput>可以显示吗</Minput>
这种情况下 Minput标签内的文字是不会渲染出来的
如果现在想在里面把文字渲染出来怎么办
好 用slot
子组件
<input type='text'/> <slot></slot>
这样的话,父组件的里面的文字就可以渲染出来
场景二:具名插槽
子组件 he.vue
<header> <slot name='header'></slot> </header>
父组件
<he> <h1 name='header'>hello world</h1> </he>
渲染出来的结果就是
<header><h1>hello world</h1></header>
场景三
子组件 child
<div> <h1>这是h1</h1> <slot>这是分发内容,只有在没有分发内容的情况下显示</slot> </div>
父组件
<child> <p>这是一段p</p> <p>两段p</p> </child>
渲染出来就是
<div><h1>这是h1</h1><p>这是一段p</p><p>两段p</p></div>
如果父组件
<child></child>
那么渲染出来的就是
<div><h1>这是h1</h1>这是分发内容,只有在没有分发内容的情况下显示</div>
场景四:作用域插槽
子组件
<div class="child"> <slot text="hello from child"></slot> </div>
父组件
<div class="parent"> <child> <template slot-scope="props"> <span>hello from parent</span> <span>{{ props.text }}</span> </template> </child> </div>
x渲染的话就是
<div class="parent"> <div class="child"> <span>hello from parent</span> <span>hello from child</span> </div> </div>