首頁 >web前端 >js教程 >Vue中佔位符如何使用

Vue中佔位符如何使用

php中世界最好的语言
php中世界最好的语言原創
2018-04-12 14:58:2813026瀏覽

 這次帶給大家Vue中佔位符如何使用,Vue中佔位符使用的注意事項有哪些,以下就是實戰案例,一起來看一下。

簡單來說就是佔位符,它會幫你佔好位置,等你需要的時候直接將html傳入,它會幫你顯示出來。

也有人說:props可以將資料從父元件傳入子元件,slot可以將html從父元件傳入子元件。那麼如何實現呢?

單一插槽:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <script type="text/javascript" src="vue.min.js"></script>
  </head>
  <body>
    <p id="app">
      <h1>我是父组件的标题</h1>
      <my-component>
        <p>这是一些初始内容</p>
        <p>这是更多的初始内容</p>
      </my-component>
    </p>
    <script type="text/javascript">
      Vue.component('my-component', {
       // 有效,因为是在正确的作用域内
       template: '<p>\
              <h2>我是子组件的标题</h2>\
              <slot>只有在没有要分发的内容时才会显示。</slot>\
            </p>',
       data: function () {
        return {
         
        }
       }
      });
      new Vue({
        el:'#app',
        data:{
          msg:'你好啊'
        }
      })
    </script>
  </body>
</html>

元件中的範本中寫入slot標籤,在父級呼叫子元件的時候傳入html即可。

具名插槽:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <script type="text/javascript" src="vue.min.js"></script>
  </head>
  <body>
    <p id="app">
      <my-component>
         <h1 slot="header">这里可能是一个页面标题</h1>
         <p>主要内容的一个段落。</p>
         <p>另一个主要段落。</p>
         <p slot="footer">这里有一些联系信息</p>
      </my-component>
    </p>
    <script type="text/javascript">
      Vue.component('my-component', {
       // 有效,因为是在正确的作用域内
       template: '<p class="container">\
             <header>\
              <slot name="header"></slot>\
             </header>\
              <main>\
              <slot></slot>\
             </main>\
             <footer>\
              <slot name="footer"></slot>\
             </footer>\
            </p>',
       data: function () {
        return {
         
        }
       }
      });
      new Vue({
        el:'#app',
        data:{
          msg:'你好啊'
        }
      })
    </script>
  </body>
</html>

具名插槽,顧名思義當有多個slot標籤時,你需要給他們起個自己的名字,在父組件調用時需要slot="內部的對應名字",當存在沒有命名的slot標籤時,父級組件傳入的預設html程式碼將全部輸出在無名的slot標籤中。

作用域插槽

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <script type="text/javascript" src="vue.min.js"></script>
  </head>
  <body>
    <p id="app">
       <!-- 在父级中,具有特殊特性 slot-scope 的 <template> 元素必须存在,表示它是作用域插槽的模板。slot-scope 的值将被用作一个临时变量名,此变量接收从子组件传递过来的 prop 对象: -->
       <child>
        <template scope="props">
         <span>hello from parent</span><br>
         <span>{{ props.text }}</span>
        </template>
      </child>
    </p>
    <script type="text/javascript">
      // 在子组件中,只需将数据传递到插槽,就像你将 prop 传递给组件一样:
      Vue.component('child',{
        template:'<ul>' +
              '<slot text="hello from child"></slot>' +
             '</ul>',
        data:function(){
         return {
         }
        },
      });
      new Vue({
        el:'#app',
        data:{
          msg:'你好啊'
        }
      })
    </script>
  </body>
</html>

作用域插槽是一種特殊類型的插槽,用作 (能被傳遞資料的) 可重複使用模板,來取代已經渲染好的元素。

其實就是相當於,在父元件中可以取得到子元件傳遞出來的props對象,從而渲染到父元件上。             

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:                            

#-ui ##源生JS怎麼實作todolist功能

#

以上是Vue中佔位符如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn