1. 程式人生 > >全域性元件三種定義

全域性元件三種定義

      不論我們使用哪種方式創建出來的元件,元件中的template屬性指向的模板內容中,必須有且只有一個根元素,其他元素必須在這個根元素下面。

1.使用Vue.extend配合Vue.component定義全域性元件

    在使用Vue.extend配合Vue.component定義全域性元件時,Vue.extend裡面定義template模板,而Vue.component裡面是要註冊一個元件

<body>
<div id="app">
  <!--第三步頁面中使用 -->
  <!-- 如果要使用元件,直接把元件的名稱以HTML標籤的形式引入到頁面中-->
  <my-compnent></my-compnent>
</div>
<script>
  //第一步:使用Vue.extend來建立全域性元件
  var com1 = Vue.extend({
    //通過template模板的屬性來展示元件要顯示的html
    template: '<h2>使用Vue.extend建立全域性元件</h2>'
  });
  //第二步:使用 Vue.component('元件名稱',創建出來的元件模板物件)
  Vue.component('myCompnent', com1);
  // 建立 Vue 例項,得到 ViewModel
  var vm = new Vue({
    el: '#app',
    data: {},
    methods: {}
  });
</script>
</body>

【注意】在定義註冊元件時,元件的名稱不需要按照駝峰命名,但是在頁面引入元件時,元件的名稱必須按照駝峰命名。

簡寫如下:

2.直接使用Vue.component定義全域性元件

這裡是直接使用Vue.component直接建立一個元件

<div id="app">
  <my-com2></my-com2>
</div>
<script>
  Vue.component('myCom2', {
    template: '<h2>直接使用Vue.component建立元件</h2>'
  });
  // 建立 Vue 例項,得到 ViewModel
  var vm = new Vue({
    el: '#app',
    data: {},
    methods: {}
  });
</script>

3.Vue外部直接定義template

 

<body>
<div id="app">
  <my-com3></my-com3>
</div>
<template id="tmp1">
  <div>
    <h2>這是通過template元素,在外部定義元件的結構,有程式碼的提示和高亮</h2>
  </div>
</template>
<script>
  Vue.component('myCom3', {
    template: "#tmp1"
  });
  var vm = new Vue({
    el: '#app',
    data: {},
    methods: {}
  });
</script>
</body>