• Vue笔记(四):插槽(slot)


    时间:2022/01/15

    插槽(Slot)用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性。

    示例代码:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <title>Document</title>
     8 </head>
     9 <body>
    10 
    11     <div id="app">
    12         
    13         <todo>
    14             <todo-title slot="todo-title" v-bind:title="title"></todo-title>
    15             <todo-list slot="todo-list" v-for="item in items" v-bind:list="item"></todo-list>
    16         </todo>
    17 
    18     </div>
    19     
    20     <script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
    21 
    22     <script>
    23 
    24         Vue.component("todo",{
    25             template:'<div>\
    26                         <slot name="todo-title"></slot>\
    27                         <ul>\
    28                             <slot name="todo-list"></slot>\
    29                         </ul>\
    30                     </div>'
    31         });
    32 
    33         Vue.component("todo-title",{
    34             props: ["title"],
    35             template:'<div>{{title}}</div>'
    36         });
    37 
    38         Vue.component("todo-list",{
    39             props: ["list"],
    40             template:'<li>{{list}}</li>'
    41         });
    42 
    43         var vm = new Vue({
    44             el: "#app",
    45             data: {
    46                 title: "图书列表",
    47                 items: ["Java", "Python", "Linux"]
    48             }
    49         });
    50 
    51     </script>
    52 
    53 
    54 </body>
    55 </html>

    在上面的代码中,todo的template中的内容如果不加反斜杠,那么只能写在一行中,但是为了提高代码的可读性,又要使代码不出问题,就需要在每次换行的后面加上一个反斜杠来转义。除此之外,在使用slot时要注意通过name属性来将slot和对应的component进行绑定。

  • 相关阅读:
    iOS 日历控件
    iOS签发者无效
    Swift3
    GitHub管理代码-随笔
    iOS10 适配问题-Xcode8
    iOS 性能调试
    bug
    贝塞尔曲线(UIBezierPath)属性、方法汇总
    webView 自适应高度 document.body 属性
    iOS-集成支付宝支付、微信支付简单总结
  • 原文地址:https://www.cnblogs.com/machi12/p/15806140.html
Copyright © 2020-2023  润新知