Vue 元件的使用語法

weixin_34236869發表於2019-01-28

最近在做 demo 中,沒有使用到元件模板的方式,在學習插槽章節中,測試怎麼將模板在本頁面使用

在同一個頁面中使用元件有兩種方式
一種是

    Vue.component('child', {
        template:'模板內容'
    });

另一種是

1、 在需要的地方直接寫模板名字
<demo1></demo1>

2、為demo1 標籤寫一個模板
 注意 語法必須是  template 標籤,否則會被識別為html 程式碼,直接在頁面中顯示內容
另外,這個模板要寫在 vue el  指定的元素(我們的demo 是 id="app")之外
<template id="child">
    模板內容
</template>

3、在 vue 中指定模板
components:{
    demo1:{
          template:'#child'
         }
    }
  • 程式碼
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <!-- 開發環境版本,包含了有幫助的命令列警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <title>Vue 元件</title>
</head>
<body>
<div id="app">
    <div class="father">
        <h3>這裡是父元件</h3>
        <child>
            <span>選單1</span>
            <span>選單2</span>
            <span>選單3</span>
        </child>
    </div>
</div>

<template id="child">
    <div class="child">
        <h3>這裡是子元件</h3>
        <slot></slot>
    </div>
</template>
<script>
    var vm = new Vue({
        el: '#app',
        data: {},
        components:{
            child:{
                template:'#child'
            }
        }
    });

</script>
</body>
</html>
2560633-0dde8753b7e2b15e.png
image.png
  • 另一種寫發
<div id="app">
    <div class="father">
        <h3>這裡是父元件</h3>
        <demo>
            <span>選單1</span>
            <span>選單2</span>
            <span>選單3</span>
        </demo>
    </div>
</div>
<script>
    Vue.component('demo', {
        template: '  <div>\n' +
            '        <h3>這裡是子元件標題</h3>\n' +
            '        <slot></slot>\n' +
            '    </div>'
    });
    var vm = new Vue({
        el: '#app',
        data: {},
    });
</script>

相關文章