最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Vue全局組件與局部組件的區(qū)別說明

 更新時間:2020年08月11日 11:14:41   作者:兵騰傲宇  
這篇文章主要介紹了基于Vue全局組件與局部組件的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1、組件聲明

<!-- 全局組件模板father模板 -->
<template id="father">
  <div>
     <h3>這是{{name}}</h1>
     <div>
       <p>這是{{data}}</p>
     </div>
  </div>
</template>
var FATHER = {
  template: "#father",
  data: function() {
     return {
       name: "一個全局組件-模板-",
       data: "數(shù)據(jù):18892087118"
     }
   }
 };

2、組件注冊

Vue.component('father', FATHER);

3、組件掛載

<h5>全局組件1</h5>

<father></father>

4、組件實例

<!DOCTYPE html>
<html>
<head>
  <title>vue2.0 --- 局部組件與全局組件</title>
</head>
 
<body>
  <h3>vue2.0局部組件與全局組件</h3>
 
  <div id='app'>
    <h5>局部組件</h5>
    <fatherlocal></fatherlocal>
    <hr>
 
    <h5>全局組件1</h5>
    <father></father>
    <hr>
 
    <h5>全局組件2</h5>
    <child :fromfather='giveData'></child>
  </div>
 
  <!-- 局部組件模板fatherlocal -->
  <template id="father-local">
    <div>
      <h3>這是{{name}}</h1>
      <div>
        <p>這是{{data}}</p>
      </div>
    </div>
  </template>
 
  <!-- 全局組件模板father -->
  <template id="father">
    <div>
      <h3>這是{{name}}</h1>
      <div>
        <p>這是{{data}}</p>
      </div>
    </div>
  </template>
 
  <template id="child">
    <div>
      <h3>這是{{name}}</h3>
      <div>
        <p>{{cmsgtwo}}</p>
        <p>{{cmsg}}</p>
        <p>{{fromfather}}</p>
        <p>{{fromfather.fmsg}}</p>
        <p><input type="button" value="按鈕" @click=" "></p>
      </div>
    </div>
  </template>
 
  <script src="vue_2.2.2_vue.min.js"></script>
  <script type="text/javascript">
    // 定義組件
    var FATHER = {
      template: "#father",
      data: function() {
        return {
          name: "一個全局組件-模板-",
          data: "數(shù)據(jù):18892087118"
        }
      }
    };
 
    var CHILD = {
      template: "#child",
      data: function() {
        return {
          name: "子組件",
          cmsg: "子組件里的第一個數(shù)據(jù)",
          cmsgtwo: "子組件里的第二個數(shù)據(jù)"
        }
      },
      methods: {
        change: function() {
          this.fromfather.fmsg = "子組件數(shù)據(jù)被更改了"
        }
      },
      mounted: function() {
        this.cmsg = this.fromfather;
      },
      props: ["fromfather"],
    };
 
    // 注冊組件
    Vue.component('father', FATHER);
    Vue.component("child", CHILD);
 
    var vm = new Vue({
      data: {
        fmsg: "data里的數(shù)據(jù)",
        giveData: {
          fmsg: "這是父組件里的數(shù)據(jù)"
        }
      },
      methods: {},
      // 局部組件fatherlocal
      components: {
        'fatherlocal': {
          template: '#father-local',
          data: function() {
            return {
              name: "局部-父組件",
              data: "局部-父組件里的數(shù)據(jù)"
            }
          }
        }
      }
    }).$mount('#app');
  </script>
</body>
</html>

6、特殊的屬性is

當使用 DOM 作為模板時 (例如,將el選項掛載到一個已存在的元素上),你會受到 HTML 的一些限制,因為 Vue 只有在瀏覽器解析和標準化 HTML 后才能獲取模板內(nèi)容。尤其像這些元素<ul>,<ol>,<table>,<select>限制了能被它包裹的元素,而一些像<option>這樣的元素只能出現(xiàn)在某些其它元素內(nèi)部。

自定義組件<my-row>被認為是無效的內(nèi)容,因此在渲染的時候會導(dǎo)致錯誤。變通的方案是使用特殊的is屬性:

<body> 
  <div id="app1"> 
    <ul>  
      <li is="my-component"></li> 
    </ul> 
  </div> 
    
  <script> 
    Vue.component("my-component",{  
      template:"<h1>{{message}}</h1>",  
      data:function(){   
        return {    
          message:"hello world"   
        }  
      } 
    }); 
 
    new Vue({  
      el:"#app1" 
      }) 
  </script> 
</body>

補充知識:Vue組件之入門:全局組件三種定義

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

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來創(chuàng)建全局組件
 var com1 = Vue.extend({
  //通過template模板的屬性來展示組件要顯示的html
  template: '<h2>使用Vue.extend創(chuàng)建全局組件</h2>'
 });
 //第二步:使用 Vue.component('組件名稱',創(chuàng)建出來的組件模板對象)
 Vue.component('myCompnent', com1);
 // 創(chuàng)建 Vue 實例,得到 ViewModel
 var vm = new Vue({
  el: '#app',
  data: {},
  methods: {}
 });
</script>
</body>

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

簡寫如下:

2.直接使用Vue.component定義全局組件

這里是直接使用Vue.component直接創(chuàng)建一個組件

<div id="app">
 <my-com2></my-com2>
</div>
<script>
 Vue.component('myCom2', {
  template: '<h2>直接使用Vue.component創(chuàng)建組件</h2>'
 });
 // 創(chuàng)建 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元素,在外部定義組件的結(jié)構(gòu),有代碼的提示和高亮</h2>
 </div>
</template>
<script>
 Vue.component('myCom3', {
  template: "#tmp1"
 });
 var vm = new Vue({
  el: '#app',
  data: {},
  methods: {}
 });
</script>
</body>

以上這篇基于Vue全局組件與局部組件的區(qū)別說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3生命周期Hooks原理與調(diào)度器Scheduler關(guān)系

    Vue3生命周期Hooks原理與調(diào)度器Scheduler關(guān)系

    這篇文章主要為大家介紹了Vue3生命周期Hooks原理與調(diào)度器Scheduler關(guān)系詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • vue對storejs獲取的數(shù)據(jù)進行處理時遇到的幾種問題小結(jié)

    vue對storejs獲取的數(shù)據(jù)進行處理時遇到的幾種問題小結(jié)

    這篇文章主要介紹了vue對storejs獲取的數(shù)據(jù)進行處理時遇到的幾種問題小結(jié),需要的朋友可以參考下
    2018-03-03
  • vue3?中v-model語法糖示例詳解

    vue3?中v-model語法糖示例詳解

    vue3中的v-model相當于vue2中的v-model和v-bind.sync 修飾符組合在一起的產(chǎn)物(擇優(yōu)整合)v-bind.sync 在 vue3 中被移除了可以在組件標簽上使用多個 v-model 綁定屬性,使用參數(shù)區(qū)分,這篇文章主要介紹了vue3?中v-model語法糖,需要的朋友可以參考下
    2024-06-06
  • 配置vue全局方法的兩種方式實例

    配置vue全局方法的兩種方式實例

    vue項目中有一些方法需要在多個頁面調(diào)用,但為了避免在每個頁面都import進來,可以把方法加到原型上去,這樣在每個組件中都能使用了,下面這篇文章主要給大家介紹了關(guān)于配置vue全局方法的兩種方式,需要的朋友可以參考下
    2021-09-09
  • vue使用混入定義全局變量、函數(shù)、篩選器的實例代碼

    vue使用混入定義全局變量、函數(shù)、篩選器的實例代碼

    本文主要是給大家分享利用混入mixins來實現(xiàn)全局變量和函數(shù)。這種方法優(yōu)點是ide會有方法、變量、篩選器提示。對vue中 利用混入定義全局變量、函數(shù)、篩選器的相關(guān)知識感興趣的朋友,跟隨小編一起看看吧
    2019-07-07
  • Vue.js進行查詢操作的實例詳解

    Vue.js進行查詢操作的實例詳解

    這篇文章主要介紹了Vue.js進行查詢操作的實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • vue router使用query和params傳參的使用和區(qū)別

    vue router使用query和params傳參的使用和區(qū)別

    本篇文章主要介紹了vue router使用query和params傳參的使用和區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Vue中使用Ueditor的示例詳解

    Vue中使用Ueditor的示例詳解

    這篇文章主要介紹了Vue中使用Ueditor的方法,本文通過實例給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • vue3.0使用taro-ui-vue3引入組件不生效的問題及解決

    vue3.0使用taro-ui-vue3引入組件不生效的問題及解決

    這篇文章主要介紹了vue3.0使用taro-ui-vue3引入組件不生效的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue實現(xiàn)docx、pdf格式文件在線預(yù)覽功能

    Vue實現(xiàn)docx、pdf格式文件在線預(yù)覽功能

    在業(yè)務(wù)中,如果遇到文檔管理類的功能,會出現(xiàn)需要在線預(yù)覽的業(yè)務(wù)需求,本文主要是通過第三方庫來實現(xiàn)文檔預(yù)覽功能,并將其封裝成preview組件,感興趣的可以了解一下
    2022-09-09

最新評論

公主岭市| 九寨沟县| 武冈市| 太保市| 嵊泗县| 贵溪市| 南和县| 英德市| 建瓯市| 金堂县| 大同县| 泸州市| 隆子县| 淮安市| 正定县| 靖宇县| 赣榆县| 鄢陵县| 泸定县| 甘孜县| 中西区| 云霄县| 东至县| 商都县| 屯留县| 准格尔旗| 清河县| 方山县| 泰宁县| 通化市| 石家庄市| 沛县| 佛教| 东乡族自治县| 浦江县| 武城县| 徐州市| 新蔡县| 同心县| 依兰县| 屏南县|