欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue組件定義,全局、局部組件,配合模板及動態(tài)組件功能示例

 更新時間:2019年03月19日 08:46:02   作者:白楊-M  
這篇文章主要介紹了vue組件定義,全局、局部組件,配合模板及動態(tài)組件功能,結合實例形式分析了vue.js中組件的定義、全局組件、局部組件、配合模板組件及動態(tài)組件的相關使用方法與操作注意事項,需要的朋友可以參考下

本文實例講述了vue組件定義,全局、局部組件,配合模板及動態(tài)組件功能。分享給大家供大家參考,具體如下:

一、定義一個組件

定義一個組件:

1. 全局組件

var Aaa=Vue.extend({
 template:'<h3>我是標題3</h3>'
});
Vue.component('aaa',Aaa);

*組件里面放數據:

data必須是函數的形式,函數必須返回一個對象(json)

2. 局部組件

放到某個組件內部

var vm=new Vue({
 el:'#box',
 data:{
  bSign:true
 },
 components:{ //局部組件
  aaa:Aaa
 }
});

1. 全局組件

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script>
 <style>
 </style>
</head>
<body>
 <div id="box">
  <aaa></aaa>
 </div>
 <script>
  var Aaa=Vue.extend({
   template:'<h3>我是標題3</h3>'
  });
  Vue.component('aaa',Aaa);
  var vm=new Vue({
   el:'#box',
   data:{
    bSign:true
   }
  });
 </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script>
 <style>
 </style>
</head>
<body>
 <div id="box">
  <my-aaa></my-aaa>
 </div>
 <script>
    //另外一種寫法,全局
  Vue.component('my-aaa',{
   template:'<strong>好</strong>'
  });
  var vm=new Vue({
   el:'#box'
  });
 </script>
</body>
</html>

組件里面放數據:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script>
</head>
<body>
 <div id="box">
  <aaa></aaa>
 </div>
 <script>
  var Aaa=Vue.extend({
   //組件里面放數據:data必須是函數的形式,函數必須返回一個對象(json)
   data(){
    return {
     msg:'我是標題^^'
    };
   },
   methods:{
    change(){
     this.msg='changed'
    }
   },
   template:'<h3 @click="change">{{msg}}</h3>'
  });
  Vue.component('aaa',Aaa);//放在這里是全局
  var vm=new Vue({
   el:'#box',
   data:{
    bSign:true
   }
  });
 </script>
</body>
</html>

2. 局部組件

放到某個組件內部

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script>
 <style>
 </style>
</head>
<body>
 <div id="box">
  <aaa></aaa>
  <br/>
  <br/>
  <my-aaa></my-aaa>
 </div>
 <script>
  var Aaa=Vue.extend({
   template:'<h3>{{msg}}</h3>',
   data(){
    return {
     msg:'ddddd'
    }
   }
  });
  var vm=new Vue({
   el:'#box',
   data:{
    bSign:true
   },
   components:{ //局部組件
    aaa:Aaa,
    'my-aaa':Aaa//這里的my-aaa需要用引號
   }
  });
 </script>
</body>
</html>

另外一種寫法,局部

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script>
 <style>
 </style>
</head>
<body>
 <div id="box">
  <my-aaa></my-aaa>
 </div>
 <script>
  var vm=new Vue({
   el:'#box',
   components:{
    'my-aaa':{
     data(){
      return {
       msg:'welcome vue'
      }
     },
     methods:{
      change(){
       this.msg='changed';
      }
     },
     template:'<h2 @click="change">標題2->{{msg}}</h2>'
    }
   }
  });
 </script>
</body>
</html>

二、配合模板

配合模板:

1. template:'<h2 @click="change">標題2->{{msg}}</h2>'

2. 單獨放到某個地方

a).

<script type="x-template" id="aaa">
 <h2 @click="change">標題2->{{msg}}</h2>
</script>

b).

<template id="aaa">
 <h1>標題1</h1>
 <ul>
  <li v-for="val in arr">
   {{val}}
  </li>
 </ul>
</template>

方法一:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script>
 <style>
 </style>
</head>
<body>
 <div id="box">
  <my-aaa></my-aaa>
 </div>
 <script type="x-template" id="aaa">
  <h2 @click="change">標題2->{{msg}}</h2>
  <ul>
   <li>1111</li>
   <li>222</li>
   <li>3333</li>
   <li>1111</li>
  </ul>
 </script>
 <script>
  var vm=new Vue({
   el:'#box',
   components:{
    'my-aaa':{
     data(){
      return {
       msg:'welcome vue'
      }
     },
     methods:{
      change(){
       this.msg='changed';
      }
     },
     template:'#aaa'
    }
   }
  });
 </script>
</body>
</html>

方法二:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script>
 <style>
 </style>
</head>
<body>
 <div id="box">
  <my-aaa></my-aaa>
 </div>
 <template id="aaa">
  <h1 @click="change">{{msg}}</h1>
  <ul>
   <li v-for="val in arr">
    {{val}}
   </li>
  </ul>
 </template>
 <script>
  var vm=new Vue({
   el:'#box',
   components:{
    'my-aaa':{
     data(){
      return {
       msg:'welcome vue',
       arr:['apple','banana','orange']
      }
     },
     methods:{
      change(){
       this.msg='changed title';
      }
     },
     template:'#aaa'
    }
   }
  });
 </script>
</body>
</html>

三、動態(tài)組件

動態(tài)組件:

<component :is="組件名稱"></component>

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script>
 <style>
 </style>
</head>
<body>
 <div id="box">
  <input type="button" @click="a='aaa'" value="aaa組件">
  <input type="button" @click="a='bbb'" value="bbb組件">
  <component :is="a"></component>
  <!--<component :is="組件名稱"></component>-->
 </div>
 <script>
  var vm=new Vue({
   el:'#box',
   data:{
    a:'aaa'
   },
   components:{
    'aaa':{
     template:'<h2>我是aaa組件</h2>'
    },
    'bbb':{
     template:'<h2>我是bbb組件</h2>'
    }
   }
  });
 </script>
</body>
</html>

運行效果:

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

希望本文所述對大家vue.js程序設計有所幫助。

相關文章

  • Vue表情輸入組件 微信face表情組件

    Vue表情輸入組件 微信face表情組件

    這篇文章主要為大家詳細介紹了Vue表情輸入組件,微信face表情組件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 詳解Vue 項目中的幾個實用組件(ts)

    詳解Vue 項目中的幾個實用組件(ts)

    這篇文章主要介紹了詳解Vue 項目中的幾個實用組件(ts),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • vue制作toast組件npm包示例代碼

    vue制作toast組件npm包示例代碼

    這篇文章主要介紹了vue制作一個toast組件npm包,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 解決Mint-ui 框架Popup和Datetime Picker組件滾動穿透的問題

    解決Mint-ui 框架Popup和Datetime Picker組件滾動穿透的問題

    這篇文章主要介紹了解決Mint-ui 框架Popup和Datetime Picker組件滾動穿透的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Vue 列表上下過渡效果的實例代碼

    Vue 列表上下過渡效果的實例代碼

    最近有個需求,一個列表上下移動要有簡單過渡效果。本文通過實例代碼給大家介紹Vue 列表上下過渡效果,需要的朋友可以參考下
    2019-06-06
  • 快速解決Error: error:0308010C:digital envelope routines::unsupported的三種解決方案

    快速解決Error: error:0308010C:digital envelope ro

    因為 node.js V17版本中最近發(fā)布的OpenSSL3.0, 而OpenSSL3.0對允許算法和密鑰大小增加了嚴格的限制,下面通過本文給大家分享快速解決Error: error:0308010C:digital envelope routines::unsupported的三種解決方案,感興趣的朋友一起看看吧
    2024-02-02
  • Vue?收集表單數據方法詳情

    Vue?收集表單數據方法詳情

    這篇文章主要介紹了Vue?收集表單數據方法詳情,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Vue之過濾器詳解

    Vue之過濾器詳解

    這篇文章主要為大家介紹了Vue之過濾器,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助,希望能夠給你帶來幫助
    2021-11-11
  • 用vue-cli開發(fā)vue時的代理設置方法

    用vue-cli開發(fā)vue時的代理設置方法

    今天小編就為大家分享一篇用vue-cli開發(fā)vue時的代理設置方法,具有很好的參考價值。希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 如何利用vue實現css過渡和動畫

    如何利用vue實現css過渡和動畫

    過渡Vue在插入、更新或者移除 DOM 時,提供多種不同方式的應用過渡效果這篇文章主要給大家介紹了關于如何利用vue實現css過渡和動畫的相關資料,需要的朋友可以參考下
    2021-11-11

最新評論