Vue3.0的初體驗

官方文檔( 中文版 ):https://vue3js.cn/docs/zh/

創(chuàng)建一個Vue3.0的項目

1佩憾、npm init vite-app vue3.0

2羹蚣、cd vue3.0

3巨坊、npm install

4义图、npm run dev
image
此時疾层,項目已經創(chuàng)建成功2靡稀9毒丁0刚尽!

接下來棘街,我們先來體驗一下Vue3.0的新東西

?? Object.defineProperty => Proxy

    重構了虛擬

    DOMOptionApi => Composition API

**1蟆盐、setup() ** beforeCreate 、created 之前執(zhí)行

    setup() 函數是 vue3 中遭殉,專門為組件提供的新屬性石挂。它為我們使用 vue3 的 Composition API 新特性提供了統一的入口, vue3取消了beforeCreate 、created兩個鉤子险污,統一用setup代替, 該函數相當于一個生命周期函數痹愚,vue中過去的data,methods蛔糯,watch里伯,computed等全部都用對應的新增api寫在setup()函數中

2、ref() 聲明單一基礎數據類型 返回值是響應式對象

 創(chuàng)建一個響應式的數據對象渤闷,ref() 函數調用的返回值是一個對象疾瓮,這個對象上只包含一個 value 屬性, 只在setup函數內部訪問ref函數需要加**.value**

**3、reactive() ** 聲明單一對象 (注意:解構會破壞代理proxy即雙向綁定)

reactive() 函數接收一個普通對象飒箭,返回一個響應式的數據對象, 想要使用創(chuàng)建的響應式數據也很簡單狼电,創(chuàng)建出來之后,在setup中return出去弦蹂,直接在template中調用即可; 在reactive()函數中訪問ref()函數創(chuàng)建的對象不用**.value**

4肩碟、isRef() 判斷是否是通過ref()函數創(chuàng)建出來的對象

5、toRefs() 從組合函數返回反應對象

toRefs() 函數可以將 reactive() 創(chuàng)建出來的響應式對象凸椿,轉換為普通的對象削祈,只不過,這個對象上的每個屬性節(jié)點,都是 ref() 類型的響應式數據

6髓抑、computed() 計算屬性 可創(chuàng)建只讀咙崎,和可讀可寫兩種

1)  只讀           let fullName = computed(() => msg.value + '~' + name)    

2)可讀可寫    let fullName2 = computed({ get: () => number.value + state.step, set: (v) => number.value = v })

7、watch()

watch 函數用來偵聽特定的數據源吨拍,并在回調函數中執(zhí)行副作用褪猛。默認情況是懶執(zhí)行的,也就是說僅在偵聽的源數據變更時才執(zhí)行回調羹饰。

1) 監(jiān)聽 reactive( )聲明的數據

    單數據監(jiān)聽:    watch( ( )=> reactiveV.name, (n, o)=>{ })

    多數據監(jiān)聽:     watch([( )=> reactive.name, ( )=> reactive.sex], ([name, sex], [oldName, oldSex])=> { })

2)   監(jiān)聽 ref( )聲明的數據

     單數據監(jiān)聽:     watch(age,(n, o)=>{ })

     多數據監(jiān)聽:     watch([age, weight], ([newAge, newWeight], [oldAge, oldWeight])=> { })

3)取消監(jiān)聽

      const stop = watch(age,(n, o)=>{ })

      setTimeout(() => { stop() }, 1000)              // 一秒后取消對age的監(jiān)聽

8伊滋、LifeCycle Hooks(新的生命周期)

    onBeforeMount(() => { console.log('onBeforeMount') }) 

    onMounted(() => { console.log('onMounted') }) 

    onBeforeUpdate(() => {      console.log('onBeforeUpdate') }) 

    onUpdated(() => { console.log('onUpdated') }) 

    onBeforeUnmount(() => { console.log('onBeforeUnmount') })

    onUnmounted(() => { console.log('onUnmounted') })

9、Template refs 通過refs 來回去真實dom元素

    <h3 ref="h3">hello</h3>

    想要得到h3的dom 在2.x中 this.$refs.h3  在3.0中如下:

      1)在setUp函數中聲明 let h3 = ref(null)队秩,并return出去h3

      2)在onMounted()函數中打印 h3.value你會得到(*<h3 data-v-c5362648="">hello</h3*>)

10笑旺、global Properties vue3.0 的全局配置

    Vue 2.x  通過 Vue.prototype擴展

    vue3.0 通過app.config.globalProperties.$api = 'http://www.baidu.com'

    在setUp函數中通過 const { ctx } = getCurrentInstance()      ctx.$api ( http://www.baidu.com )

11、Suspense

異步組件在默認情況下是可掛起的馍资。這意味著如果它在父鏈中有一個 <Suspense>筒主,它將被視為該 <Suspense> 的異步依賴。在這種情況下迷帜,加載狀態(tài)將由 <Suspense> 控制物舒,組件自身的加載、錯誤戏锹、延遲和超時選項將被忽略冠胯。異步組件可以選擇退出 Suspense 控制,并通過在其選項中指定 suspensable:false锦针,讓組件始終控制自己的加載狀態(tài)荠察。

??:1、Vue3.0template可以有多個根結點

    2奈搜、創(chuàng)建組件需要用defineComponent包裹悉盆。

看看Vuex的使用

在setup()函數中使用store中的state,commits馋吗,actions

首先焕盟,獲取ctx    const { ctx } = getCurrentInstance()

此時ctx.$store就是我們想要的store ,OK宏粤,想咋用就咋用了
image

作者:Nicholas_liang
鏈接:http://www.reibang.com/p/9e78d2d6aa34
來源:簡書
著作權歸作者所有脚翘。商業(yè)轉載請聯系作者獲得授權,非商業(yè)轉載請注明出處绍哎。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末来农,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子崇堰,更是在濱河造成了極大的恐慌沃于,老刑警劉巖涩咖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異繁莹,居然都是意外死亡檩互,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門蒋困,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盾似,“玉大人敬辣,你說我怎么就攤上這事雪标。” “怎么了溉跃?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵村刨,是天一觀的道長。 經常有香客問我撰茎,道長嵌牺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任龄糊,我火速辦了婚禮逆粹,結果婚禮上,老公的妹妹穿的比我還像新娘炫惩。我一直安慰自己僻弹,他們只是感情好,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布他嚷。 她就那樣靜靜地躺著蹋绽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪筋蓖。 梳的紋絲不亂的頭發(fā)上卸耘,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音粘咖,去河邊找鬼蚣抗。 笑死,一個胖子當著我的面吹牛瓮下,可吹牛的內容都是我干的翰铡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼唱捣,長吁一口氣:“原來是場噩夢啊……” “哼两蟀!你這毒婦竟也來了?” 一聲冷哼從身側響起震缭,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赂毯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體党涕,經...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡烦感,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了膛堤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片手趣。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肥荔,靈堂內的尸體忽然破棺而出绿渣,到底是詐尸還是另有隱情,我是刑警寧澤燕耿,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布中符,位于F島的核電站,受9級特大地震影響誉帅,放射性物質發(fā)生泄漏淀散。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一蚜锨、第九天 我趴在偏房一處隱蔽的房頂上張望档插。 院中可真熱鬧,春花似錦亚再、人聲如沸郭膛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饲鄙。三九已至,卻和暖如春圆雁,著一層夾襖步出監(jiān)牢的瞬間忍级,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工伪朽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留轴咱,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓烈涮,卻偏偏與公主長得像朴肺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子坚洽,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內容

  • ?? ?? 來嘍戈稿,來嘍,他真的來嘍讶舰,Vue3.0 0暗痢S倒印>奂佟瓣俯! 官方文檔( 中文版 ):https://vue3js.cn...
    Nicholas_liang閱讀 24,101評論 4 23
  • 前言 Vue3.0的步伐越來越近了俊马,是時候了解起來了,雖然嘴上還喊學不動了敷存,但是墓造,身體還得誠實起來,接著學锚烦。觅闽。。通...
    Mstian閱讀 9,944評論 1 9
  • 就在前幾天挽牢,vue官網推出了3.xbeta版谱煤,那3版本對2版本做了哪些改動和升級呢摊求? 下面讓我們一起來體驗下: 眾...
    小灰灰_a閱讀 394評論 0 0
  • 安裝 使用 完整測試代碼 總結 data禽拔、methods、watch室叉、computed 都寫在setup中data...
    Forskan閱讀 48評論 0 1
  • @TOC 鎮(zhèn)樓圖--殺生丸.jpg 作者上篇文章已經對ue2.0響應式的一個原理做了比較詳細的介紹茧痕,但2019年1...
    王一諾Eno閱讀 720評論 0 0