国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue組件全局注冊實現警告框的實例詳解

2019-11-19 13:39:57
字體:
來源:轉載
供稿:網友

外部引入

<link  rel="stylesheet"><link  rel="stylesheet"><script type="text/javascript" src="../js/vue-2.5.16.js"></script>

HTML部分

 <div class="container">   <!--動態數據綁定-->   <my-info v-bind:data='msg' v-on:close='closeHandler'></my-info>   <!--靜態數據綁定-->   <my-info data="操作有誤"></my-info> </div>

script部分

<script type="text/javascript">   Vue.component('my-info',{   template:`     <transition leave-active-class="animated fadeOutUpBig">     <div       v-show='isShow'        style="background:orange;          color:#fff;          padding:.5em 1em;           border-radius:5px;           margin:.5em 0;           position:relative">       <i class="fa fa-info-circle"></i>       <span>{{data}}</span>       <i @click='close' class="fa fa-close"         style="position:absolute;            right: 1em;           cursor:pointer"></i>     </div>     </transition>     `,     //注意:data必須是一個函數     data(){       return {       isShow:true       }     },     props:['data'],     methods:{       close(){       //子組件向父組件發射事件       this.$emit('close');       //關閉消息框       this.isShow = false;       }     },   });   new Vue({     el:'.container',     data:{       msg:'添加失敗!'     },     methods:{       closeHandler(){       console.log('關閉了');       }    }  }); </script>

效果

全局組件

組件的創建和注冊分成3步:創建組件構造器,注冊組件,掛載作用域內實例化

例如:

<div id="app">  <!-- 3. #app是Vue實例掛載的元素,應該在掛載元素范圍內使用組件-->  <my-component></my-component></div><script>  // 1.創建一個組件構造器  var myComponent = Vue.extend({    template: '<div>這是我的全局組件</div>'  })    // 2.注冊組件,并指定組件的標簽,組件的HTML標簽為<my-component>  Vue.component('my-component', myComponent)    new Vue({    el: '#app'  });</script> 

我們來理解組件的創建和注冊:

  1. Vue.extend()是Vue構造器的擴展,調用Vue.extend()創建的是一個組件構造器,而不是一個具體的組件實例。
  2. Vue.extend()構造器有一個選項對象,選項對象的template屬性用于定義組件要渲染的HTML。
  3. 使用Vue.component()注冊組件時,需要提供2個參數,第1個參數時組件的標簽,第2個參數是組件構造器,也就是說
  4. Vue.component('標簽名',Vue.extend())=>
  5. Vue.component('標簽名', {template:' '})
  6. Vue.component()方法內部會調用組件構造器,創建一個組件實例。

全局組件必須寫在Vue實例創建之前,才在該根元素下面生效

例如:

<div id="app">   <!--該組件不會被渲染,并且報錯-->   <my-component></my-component> </div> <div id="app1">   <my-component></my-component> </div> <script>   new Vue({     el: "#app"   });   Vue.component("my-component", {     template: "<h1>這是我的全局組件</h1>"   });   new Vue({    el: "#app1"   }) </script>  

Prop傳值

組件實例的作用域是孤立的,父組件可以通過props向下傳遞數據給子組件。

Prop靜態傳遞數據

<div class="father">   <child msg="hello!" data="yes!"></child> </div> Vue.component('child',{  props:['msg',"data"],  template:`<p>{{msg}}</p>       <p>{{data}}</p>       `})

Prop動態傳遞數據

<div class="father">   <child v-bind:msg="val"></child> </div> Vue.component('child',{  props:["msg"],  template:` <p>{{msg}}</p>`})new Vue({  el:'.father,  data:{     val:'添加失??!'  }})

總結

以上所述是小編給大家介紹的Vue組件全局注冊實現警告框的實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘潭市| 宁波市| 岳阳县| 白河县| 郴州市| 汪清县| 顺昌县| 赤水市| 桑植县| 阿合奇县| 韶山市| 焉耆| 九寨沟县| 开原市| 来凤县| 耒阳市| 益阳市| 石门县| 娄底市| 荔波县| 年辖:市辖区| 图片| 平陆县| 乌拉特前旗| 新邵县| 中牟县| 永泰县| 彰武县| 云林县| 名山县| 诏安县| 买车| 郴州市| 麻栗坡县| 信宜市| 华容县| 西乌珠穆沁旗| 安溪县| 永和县| 沧源| 阿图什市|