一天,当你走过蔓草荒烟,我便在那里向你轻声呼喊,以风声,以水响。斩断自己的退路,才能更好地赢得出路。
本文实例讲述了vue学习笔记之slot插槽基本用法。分享给大家供大家参考,具体如下:
不使用插槽,在template中用v-html解析父组件传来的带有标签的content
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <child content="<p>Rachel</p>"></child> </div> </body> </html> <script> Vue.component('child', { props: ['content'], template: '<div> <p>hello</p> <div v-html="this.content"></div> </div>' }) var vm = new Vue({ el: '#app' }) </script>
使用插槽,如果父组件为空,就会显示slot中定义的默认内容
<child> <p>Rachel</p> </child>
Vue.component('child', { template: '<div> <p>hello</p> <slot>默认内容</slot> </div>' })
使用插槽添加header和footer,使用‘具名插槽',也就是给插槽起个名字,各找各的位置。此处也可以写默认值,如果父组件没有对应的插槽内容的话,会显示子组件定义的插槽的默认值。
<div id="app"> <body-content> <div class="header" slot="header">header</div> <div class="footer" slot="footer">footer</div> </body-content> </div>
Vue.component('body-content', { template: '<div> <slot name="header">default header</slot> <div class="content">content</div> <slot name="footer">default footer</slot> </div>' })
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.haodaima.com/code/HtmlJsRun测试上述代码运行效果。
希望本文所述对大家vue.js程序设计有所帮助。
本文vue学习笔记之slot插槽基本用法实例分析到此结束。时间并不会真的帮我们解决什么问题,它只是把原来怎样也想不通的问题,变得不再重要了。小编再次感谢大家对我们的支持!