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

詳解vue.js數(shù)據(jù)傳遞以及數(shù)據(jù)分發(fā)slot

 更新時間:2018年01月20日 14:44:38   投稿:laozhang  
本篇文章給大家通過代碼實例分析了vue.js數(shù)據(jù)傳遞以及數(shù)據(jù)分發(fā)slot的相關(guān)知識,有這方面興趣的朋友參考下吧。

一、組件間的數(shù)據(jù)傳遞

1.父組件獲取子組件的數(shù)據(jù)  

*子組件把自己的數(shù)據(jù),發(fā)送到父級

*vm.$emit(事件名,數(shù)據(jù));

*v-on: @

示例用法:當(dāng)點(diǎn)擊send按鈕的時候,“111”變成“我是子組件的數(shù)據(jù)”

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>父級獲取子級的數(shù)據(jù)</title>
  <script src="bower_components/vue/dist/vue.js"></script>
  <style>
  </style>
</head>
<body>
<div>
  <aaa>
  </aaa>
</div>
<template>
  <span>我是父級 -> {{msg}}</span>
  //自動調(diào)用get方法,@child-msg和下面的this.$emit('child-msg',this.a)相對應(yīng)
  <bbb @child-msg="get"></bbb>
</template>
<template>
  <h3>子組件-</h3>
  <input type="button" value="send" @click="send">
</template>
<script>
  var vm=new Vue({
    el:'#box',
    data:{
      a:'aaa'
    },
    components:{
      'aaa':{
        data:function(){
          return {
            msg:111,
            msg2:'我是父組件的數(shù)據(jù)'
          }
        },
        template:'#aaa',
        methods:{
          //這里的msg實際上就是子組件傳遞給父組件的數(shù)據(jù)
          get:function(msg){
            this.msg=msg;
          }
        },
        components:{
          'bbb':{
            data:function(){
              return {
                a:'我是子組件的數(shù)據(jù)'
              }
            },
            template:'#bbb',
            methods:{
              send:function(){
                this.$emit('child-msg',this.a);
              }
            }
          }
        }
      }
    }
  });
</script>
</body>
</html>

2、子組件獲取父組件的數(shù)據(jù)

在調(diào)用子組件:

<bbb :m="數(shù)據(jù)"></bbb>

子組件之內(nèi):

props:['m','myMsg']
props:{
'm':String,
'myMsg':Number
        }

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>自己獲取父級的數(shù)據(jù)</title>
  <script src="bower_components/vue/dist/vue.js"></script>
  <style>
  </style>
</head>
<body>
<div>
  <div>{{a}}</div>
  <aaa>
    {{msg}}
  </aaa>
</div>

<template>
  <h1>11111</h1>
  <bbb :mmm="msg2" :my-msg="msg"></bbb>
</template>
<script>
  var vm=new Vue({
    el:'#box',
    data:{
      a:'a'
    },
    components:{
      'aaa':{
        data:function(){
          return {
            msg:111,
            msg2:'我是父組件的數(shù)據(jù)'
          }
        },
        template:'#aa',
        components:{
          'bbb':{
            props:{
              'mmm':String,
              'myMsg':Number
            },
            template:'<h3>我是bbb組件->{{mmm}} <br> {{myMsg}}</h3>'
          }
        }
      }
    }
  });

</script>
</body>
</html>

運(yùn)行結(jié)果:

二、內(nèi)容分發(fā):

Vue.js提供了一種混合父組件內(nèi)容與子組件自己模版的方式:slot,用來占一個位置

1、基本用法 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>slot保留原來的位置</title>
  <script src="bower_components/vue/dist/vue.js"></script>
  <style>
  </style>

</head>
<body>
<div>
  <aaa>
    <ul>
      <li>1111</li>
      <li>2222</li>
      <li>3333</li>
    </ul>
  </aaa>
  <hr>
  <aaa>
  </aaa>
</div>
<template>
  <h1>xxxx</h1>
  <slot>這是默認(rèn)的情況</slot>
  <p>welcome vue</p>
</template>

<script>
  var vm=new Vue({
    el:'#box',
    data:{
      a:'aaa'
    },
    components:{
      'aaa':{
        template:'#aaa'
      }
    }
  });

</script>
</body>
</html>

運(yùn)行結(jié)果:ul標(biāo)簽里面的內(nèi)容沒有被覆蓋,如果不使用slot,ul標(biāo)簽里的內(nèi)容將會被覆蓋

2、slot的name屬性 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>slot中name屬性的使用</title>
  <script src="bower_components/vue/dist/vue.js"></script>
  <style>
  </style>
</head>
<body>
<div>
  <aaa>
    <ul slot="ul-slot">    //這里slot的名字要與下面slot中name屬性相對應(yīng)
      <li>1111</li>
      <li>2222</li>
      <li>3333</li>
    </ul>
    <ol slot="ol-slot">    //用法同上
      <li>111</li>
      <li>222</li>
      <li>333</li>
    </ol>
  </aaa>
  <hr>
  <aaa>
  </aaa>
</div>
<template>  
  <h1>xxxx</h1>
  <slot name="ol-slot">這是默認(rèn)的情況</slot>      //設(shè)置name屬性,給slot命名
  <p>welcome vue</p>
  <slot name="ul-slot">這是默認(rèn)的情況2</slot>
</template>

<script>
  var vm=new Vue({
    el:'#box',
    data:{
      a:'aaa'
    },
    components:{
      'aaa':{
        template:'#aaa'
      }
    }
  });

</script>
</body>
</html>

 運(yùn)行結(jié)果:

相關(guān)文章

  • vue-cli中的:visible.sync是什么意思

    vue-cli中的:visible.sync是什么意思

    visible前面加冒號的,說明后面是一個變量或者表達(dá)式;沒加冒號的后面就是對應(yīng)的字符串字面量,這篇文章主要介紹了vue-cli中的:visible.sync是什么,需要的朋友可以參考下
    2022-11-11
  • 優(yōu)雅的elementUI table單元格可編輯實現(xiàn)方法詳解

    優(yōu)雅的elementUI table單元格可編輯實現(xiàn)方法詳解

    這篇文章主要介紹了優(yōu)雅的elementUI table單元格可編輯實現(xiàn)方法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue3中關(guān)于路由hash與History的設(shè)置

    vue3中關(guān)于路由hash與History的設(shè)置

    這篇文章主要介紹了vue3中關(guān)于路由hash與History的設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 基于vue2框架的機(jī)器人自動回復(fù)mini-project實例代碼

    基于vue2框架的機(jī)器人自動回復(fù)mini-project實例代碼

    本篇文章主要介紹了基于vue2框架的機(jī)器人自動回復(fù)mini-project實例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-06-06
  • Vue基于el-breadcrumb實現(xiàn)面包屑功能(操作代碼)

    Vue基于el-breadcrumb實現(xiàn)面包屑功能(操作代碼)

    這篇文章主要介紹了Vue基于el-breadcrumb實現(xiàn)面包屑功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Vue3?Axios攔截器封裝成request文件的示例詳解

    Vue3?Axios攔截器封裝成request文件的示例詳解

    這篇文章主要介紹了Vue3?Axios攔截器封裝成request文件,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • vue項目基于WebRTC實現(xiàn)一對一音視頻通話

    vue項目基于WebRTC實現(xiàn)一對一音視頻通話

    這篇文章主要介紹了vue項目基于WebRTC實現(xiàn)一對一音視頻通話效果,實現(xiàn)代碼分為前端和后端兩部分代碼,需要的朋友可以參考下
    2024-05-05
  • Vue3實現(xiàn)Element Plus表格的多選功能與條件操作

    Vue3實現(xiàn)Element Plus表格的多選功能與條件操作

    Element-plus是ElementUI的升級版,是一套基于vue2與vue3的桌面端組件庫,它提供了豐富的組件幫助開發(fā)人員快速構(gòu)建功能強(qiáng)大、風(fēng)格統(tǒng)一的頁面,本文給大家介紹了Vue3實現(xiàn)Element Plus表格的多選功能與條件操作,需要的朋友可以參考下
    2024-08-08
  • 如何手寫簡易的 Vue Router

    如何手寫簡易的 Vue Router

    這篇文章主要介紹了如何手寫簡易的 Vue Router,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-10-10
  • vue實現(xiàn)ToDoList簡單實例

    vue實現(xiàn)ToDoList簡單實例

    這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)ToDoList簡單實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評論

永嘉县| 农安县| 长寿区| 讷河市| 高雄县| 乐陵市| 泽普县| 新营市| 玛纳斯县| 屯门区| 临安市| 焦作市| 宝坻区| 扎鲁特旗| 鄂托克前旗| 聊城市| 鹤庆县| 新干县| 喀喇沁旗| 阳城县| 贵阳市| 蒙城县| 彰化县| 榆树市| 蓬安县| 平阳县| 措美县| 霍山县| 屯昌县| 安新县| 滕州市| 六枝特区| 云阳县| 建昌县| 吉木萨尔县| 临猗县| 宿州市| 远安县| 凤山县| 洱源县| 东阿县|