vue3對比vue2

1.vue3中template支持多個根標簽
2.main.js
3.setup(取代data methods) ref
4.v-model在組件中的運用
5.新組件 Teleport

template支持多個根標簽

雖然睹耐,但是
在用ant-design-vue搭的架子中源武,如果使用了多個根標簽,跳轉頁面之后會出現白板箫章,重新刷新頁面之后才正常顯示。(也不知道是哪的問題曼氛,就桐款。。還是用一個根標簽吧痒蓬。

main.js
//vue3
import { createApp } from 'vue'
import App from './App.vue'
import './index.css'

createApp(App).mount('#app')
//vue2
import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

createApp(組件)與new Vue({template,render})

setup ref

setup函數返回一個對象,這個對象中包含方法和數據滴劲,生命周期鉤子函數也在setup中運行攻晒,取代的是vue2中的data,methods班挖。
ref類型的數據鲁捏,是一種響應式的數據,待續(xù)

//setup函數有兩個參數props和context
export default{
 props:{
    title: String
  },
  setup(props, context) {
   console.log(props.title)

   // Attributes (Non-reactive object)
   console.log(context.attrs)
    // Slots (Non-reactive object)
   console.log(context.slots)
    // Emit Events (Method)
   console.log(context.emit)
  }
}
 
// Vue2
export default{
  props:{
    title: String
  },
  data() {
    return {
      count: 0
    },
  methods:{
    add(){
      return this.count++
    }
  }
}

}

// Vue3
export default {
  props: {
    title: String
  },
  setup(props,context) {
   const count = ref(0)
   add(){
      return count.value ++
    }
  return {count,add}
  }
}

v-model在組件中的運用

vue2組件通信

//子組件
<template>
  <div>
   <p v-if="pVisible">
      For a guide and recipes on how to configure / customize this project      
   </p>
   <div @click="control">切換p標簽顯示</div>
  </div>
<template>
<script>
export default {
  name: 'children',
  props: {
    pVisible:Boolean
  },
  methods: {
    control(){
      this.$emit('control',!this.pVisible)
    }
  },
}
</script>
//父組件
<template>
  <div >
    <children  :pVisible="isVisible" @control="abc"/>//@control="isVisible=$event"這樣也可
  </div>
</template>
<script>
import children from './components/children.vue'
export default {
  name: 'Father',
  data() {
    return {
      isVisible:true
    }
  },
  components: {children},
  methods: {
    abc($event){
      this.isVisible=$event
    }
  },
}
</script>

vue3使用v-model組件通信

//子組件
<template>
   <p v-if="pVisible">
      For a guide and recipes on how to configure / customize this project      
   </p>
   <div @click="control">切換p標簽顯示</div>
<template>
<script>
export default {
  name: 'children',
  props: {
    pVisible:Boolean
  },
   setup(props,context){
        const control=()=>{
            context.emit('update: pVisible',!props.pVisible)
        }
        return{control}
    }
}
</script>
//父組件
<template>
  <div >
    <children  v-model:pVisible="isVisible" />
  </div>
</template>
<script>
import { ref } from 'vue'
import children from './components/children.vue'
export default {
  name: 'Father',
  components: {children},
  setup(){
    const isVisible=ref(true)
    return{isVisible}
  },
}
</script>

相當于子組件中的pVisible與父組件中的isVisible雙向綁定了,比vue2傳統(tǒng)方法簡化很多萧芙。

Teleport
有兩個div分別是box1和box2给梅,據經驗所知,即使box1的孩子el1的z-index為10末购,el1的層級也沒有box2高破喻,一些情況下el1也會被box2遮住(因為即使el1的層級再高盟榴,也是在box1的層級下生存)曹质,這時候就可以用teleport組件包住el1,使其脫離box1層級的掌控,to表示重新找的爸爸

<div class="box1" style="position:relative z-index:2">
   <div class="el1" style="position:absolte z-index:10"></div>
</div>
<div class="box2" style="position:relative z-index:3"></div>

//Teleport
<div class="box1" style="position:relative z-index:2">
    <Teleport to="body">
       <div class="el1" style="position:absolte z-index:10"></div>
    </Teleport>
</div>T
<div class="box2" style="position:relative z-index:3"></div>

//待更新擎场。羽德。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末迅办,一起剝皮案震驚了整個濱河市宅静,隨后出現的幾起案子,更是在濱河造成了極大的恐慌站欺,老刑警劉巖姨夹,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纤垂,死亡現場離奇詭異,居然都是意外死亡磷账,警方通過查閱死者的電腦和手機峭沦,發(fā)現死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逃糟,“玉大人吼鱼,你說我怎么就攤上這事〈卵剩” “怎么了菇肃?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長取募。 經常有香客問我琐谤,道長,這世上最難降的妖魔是什么玩敏? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任笑跛,我火速辦了婚禮,結果婚禮上聊品,老公的妹妹穿的比我還像新娘。我一直安慰自己几苍,他們只是感情好翻屈,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妻坝,像睡著了一般伸眶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刽宪,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天厘贼,我揣著相機與錄音,去河邊找鬼圣拄。 笑死嘴秸,一個胖子當著我的面吹牛,可吹牛的內容都是我干的庇谆。 我是一名探鬼主播岳掐,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼饭耳!你這毒婦竟也來了串述?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤寞肖,失蹤者是張志新(化名)和其女友劉穎纲酗,沒想到半個月后衰腌,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡觅赊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年右蕊,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茉兰。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡尤泽,死狀恐怖,靈堂內的尸體忽然破棺而出规脸,到底是詐尸還是另有隱情坯约,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布莫鸭,位于F島的核電站闹丐,受9級特大地震影響,放射性物質發(fā)生泄漏被因。R本人自食惡果不足惜卿拴,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梨与。 院中可真熱鬧堕花,春花似錦、人聲如沸粥鞋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呻粹。三九已至壕曼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間等浊,已是汗流浹背腮郊。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留筹燕,地道東北人轧飞。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像撒踪,于是被迫代替她去往敵國和親踪少。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359