中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue中全局組件與局部組件有什么不同

發布時間:2021-01-28 09:20:04 來源:億速云 閱讀:296 作者:Leah 欄目:web開發

Vue中全局組件與局部組件有什么不同?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1、組件聲明

<!-- 全局組件模板father模板 --> 
<template id="father"> 
  <div> 
     <h4>這是{{name}}</h2> 
     <div> 
       <p>這是{{data}}</p> 
     </div> 
  </div> 
</template> 

var FATHER = { 
  template: "#father", 
  data: function() { 
     return { 
       name: "一個全局組件-模板-", 
       data: "數據:18892087118" 
     } 
   } 
 };

2、組件注冊

Vue.component('father', FATHER);

3、組件掛載

<h6>全局組件1</h6> 
<father></father>

4、組件實例

<!DOCTYPE html> 
<html> 
<head> 
  <title>vue2.0 --- 局部組件與全局組件</title> 
</head> 
<body> 
  <h4>vue2.0局部組件與全局組件</h4> 
  <div id='app'> 
    <h6>局部組件</h6> 
    <fatherlocal></fatherlocal> 
    <hr> 
    <h6>全局組件1</h6> 
    <father></father> 
    <hr> 
    <h6>全局組件2</h6> 
    <child :fromfather='giveData'></child> 
  </div> 
  <!-- 局部組件模板fatherlocal --> 
  <template id="father-local"> 
    <div> 
      <h4>這是{{name}}</h2> 
      <div> 
        <p>這是{{data}}</p> 
      </div> 
    </div> 
  </template> 
  <!-- 全局組件模板father --> 
  <template id="father"> 
    <div> 
      <h4>這是{{name}}</h2> 
      <div> 
        <p>這是{{data}}</p> 
      </div> 
    </div> 
  </template> 
  <template id="child"> 
    <div> 
      <h4>這是{{name}}</h4> 
      <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: "數據:18892087118" 
        } 
      } 
    }; 
    var CHILD = { 
      template: "#child", 
      data: function() { 
        return { 
          name: "子組件", 
          cmsg: "子組件里的第一個數據", 
          cmsgtwo: "子組件里的第二個數據" 
        } 
      }, 
      methods: { 
        change: function() { 
          this.fromfather.fmsg = "子組件數據被更改了" 
        } 
      }, 
      mounted: function() { 
        this.cmsg = this.fromfather; 
      }, 
      props: ["fromfather"], 
    }; 
    // 注冊組件 
    Vue.component('father', FATHER); 
    Vue.component("child", CHILD); 
    var vm = new Vue({ 
      data: { 
        fmsg: "data里的數據", 
        giveData: { 
          fmsg: "這是父組件里的數據" 
        } 
      }, 
      methods: {}, 
      // 局部組件fatherlocal 
      components: { 
        'fatherlocal': { 
          template: '#father-local', 
          data: function() { 
            return { 
              name: "局部-父組件", 
              data: "局部-父組件里的數據" 
            } 
          } 
        } 
      } 
    }).$mount('#app'); 
  </script> 
</body> 
</html>

6、特殊的屬性is

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

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

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

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南宁市| 巩义市| 奉贤区| 禹城市| 新乡市| 芦溪县| 个旧市| 海丰县| 龙南县| 策勒县| 枞阳县| 新田县| 商洛市| 阜宁县| 青州市| 钦州市| 陕西省| 台湾省| 措美县| 盐津县| 麻栗坡县| 泸水县| 施甸县| 诏安县| 莱阳市| 甘洛县| 白沙| 曲靖市| 铜川市| 东乡族自治县| 晋州市| 偏关县| 泽库县| 乳山市| 孟津县| 达日县| 阳东县| 漳州市| 甘谷县| 邵武市| 田东县|