在vue中使用插槽

slot 插槽

<!DOCTYPE html>
<html>
<head>
   <title>在vue中使用插槽</title>
   <script src="./vue.js"></script>
</head>
<body>
   <!-- // 父组件给子组件插入额外的dom区块 -->
   <!-- // 这里定义了2个具名插槽 一个叫header一个叫footer -->
   <div id='app'>
       <counter>
           <div class="header" slot="header">header</div>
           <div class="footer" slot="footer">footer</div>
       </counter>
       
   </div>


   <!-- // 作用域插槽 -->
   <!-- // 作用域插槽必须是一个template开头和结尾的,同时要声明从子组件传来的数据放在哪,slot-scope='props'这个指定。还有接收过来的数据改如何展示 -->
   <div id='app-1'>
       <child>
           <template slot-scope='props'>
               <li>{{props.item}} -- hello</li>
               
           </template>
       </child>
   </div>
<script>

   var counter = {
       template: `<div >
                   <slot name="header"></slot>
                   <div class="content">content</div>
                   <slot name="footer"></slot>
                   </div>`,
   
   }

   var vm =  new Vue({
       el:'#app',
       components: {
           counter: counter
       },
       
   })


   var child = {
       data: function() {
           return {
               list: [1,2,3,4,5]
           }
       },
       template: `<div>
                   <ul>
                   <slot v-for="item of list"
                       :item="item">
                   </slot>
                   </ul>
                   </div>`
   
   }

   var vm1 =  new Vue({
       el:'#app-1',
       components: {
           child: child
       }
   })
</script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容