vue給子組件增加html內容(稱為插槽 slot)


插槽給子組件增加內容,插槽可以設置默認值

在子組件中template中插槽寫法 <slot></slot>

slot標簽內可以添加name屬性,要與html中的slot值對應起來

(要是子組件html之間沒有寫內容,又想顯示某個值,可以使用slot默認值:<slot>默認值</slot>)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>插槽 slot</title>
    <script src="./vue.js"></script>
  </head>
  <body>
    <div id="app">
      <body-content>
        <div slot="header">header</div>
        <div slot="footer">footer</div>
      </body-content>
    </div>
    <script>
      Vue.component("bodyContent",{
        template:`<div>
                    <slot name='header'></slot>
                    <div>content</div>
                    <slot name='footer'></slot>
                  </div>`
      });
      var app = new Vue({
        el:'#app'
      })
    </script>
  </body>
</html>

 

作用域插槽

作用域插槽必須是一個以template開頭和結尾的內容

插槽要聲明從子組件接受的數據是放到slot-scope的值中

<div id="app">
      <child>
        <template>
          <li slot-scope="props">{{props.item}}</li>
        </template>
      </child>
    </div>
    <script>
      Vue.component("child",{
        data:function(){
          return {
            list:[1,2,3,4]
          }
        },
        template:`<div>
                    <ul>
                      <slot v-for="item in list" :item=item></slot>
                    </ul>
                  </div>`
      });
      var app = new Vue({
        el:'#app'
      })
    </script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM