日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Vue3 Composition API的使用簡介

瀏覽:162日期:2022-10-01 11:19:33

vue3.0在7月發布了rc版本,vue-cli4.5后也支持選擇vue3作為備選版本可以體驗了,vue3的正式版本相必也不遠了。學不動了呀!!!!相比vue2.0版本(Option API),Composition API(組合API)算是3.0的重大變更之一了。

概述

Composition API 主要靈感來源于React Hooks,目的是通過一組低侵入式的、函數式的 API,使得我們能夠更靈活地「組合」組件的邏輯。

示例

<template> <div>{{count}}</div> <button @click='addCount'>添加</button></template><script lang='ts'>import { defineComponent, ref, onMounted } from ’vue’;export default defineComponent({ name: ’App’, setup () { const count = ref(0) const getCount = () => { count.value = Math.floor(Math.random() * 10) } const addCount = () => { count.value++ } onMounted(() => { getCount() }) return { count, addCount } }});</script>

Composition API顧名思義就是不再傳入data、mounted等參數,通過引入的ref、onMounted等方法實現數據的雙向綁定、生命周期函數的執行。

為什么需要

1.在組件比較復雜的情況下,可以將邏輯代碼合到一起去,而不會被option強行分隔。這提高了代碼質量的上限,同時也拉低了代碼質量的下限。來自官方的一張對比圖:

Vue3 Composition API的使用簡介

2.更好的進行復用。

在vue2中,想要復用部分邏輯的代碼,都是通過mixin進去。但mixin進去的內容實際上很不直觀,而且相同命名會被覆蓋。而通過composition API,因為所有的方法都是引入的,可以將單獨某個邏輯進行封裝。例如對發送驗證碼倒計時功能進行封裝。

<template> <input type='number' placeholder='請輸入驗證碼'> <button v-if='count'>{{count}}秒后可重新發送</button> <button v-else @click='startCount'>發送驗證碼</button></template><script lang='ts'>import { defineComponent, ref, reactive } from ’vue’;const userCountDown = () => { const count = ref(0) const countDown = (num: number) => { count.value = num num-- if (num > 0) { setTimeout(() => { countDown(num) }, 1000) } } const startCount = () => { // get verifyCode countDown(60) } return { count, startCount }}export default defineComponent({ name: ’Home’, setup () { const { count, startCount } = userCountDown() return { count, startCount } }});</script>

3.更好的typescript支持。不會再往vue原型上添加很多內容,而是通過引入的方式,類型定義會更清晰。

setup

setup是vue新增的一個選項,它是組件內使用Composition API的入口。setup是在創建vue組件實例并完成props的初始化之后執行。因為setup會在option api解析之前被調用,所以setup中的this會與options中得完全不一樣。為了避免混亂,在setup中不使用this。同時setup返回的值,可以在模板和其他option中使用。從設計上來說,vue官方是將所有的事情在setup里完成。setup返回值連接的是template模板與方法。

ref、reactive

既然不在傳入data,那么將數據創建和監聽響應式就需要通過vue暴露出來的功能 ref或reactive。兩者有所區別,ref用于基礎賦值類型的數據,而reactive用于引用類型的數據。

其中基礎賦值類型的值,在setup方法中,需要用 .value的方式進行獲取和修改。因為賦值類型的值如果return出去返回值,就失去了數據的雙綁定。但是在template中,可以進行直接訪問。

<template> <div>{{count}} <button @click='changeCount'>添加</button> </div> <div>學生的姓名是:{{student.name}}</div> <div>學生的年齡是:{{student.age}} <button @click='changeStudentAge(20)'>添加</button> </div></template><script lang='ts'>import { defineComponent, ref, reactive } from ’vue’;export default defineComponent({ name: ’Home’, setup () { const count = ref(0) const changeCount = () => { count.value = count.value + 1 } const student = reactive({ name: ’Bob’, age: 12 }) const changeStudentAge = (age: number) => { student.age = age } return { count, changeCount, student, changeStudentAge } }});</script>computed與watch

<template> <div>{{count}}</div> <div>{{doubleCount}}</div> <button @click='addCount'>添加</button></template><script lang='ts'>import { defineComponent, ref, computed, watchEffect, watch } from ’vue’;export default defineComponent({ name: ’App’, setup () { const count = ref(0) watch(count, () => { // 如多個則用數組的方式傳入[count, count1] console.log(’watch’, count.value) }) watchEffect(() => { console.log(’watchEffect’, count.value) }) const addCount = () => { count.value++ } const doubleCount = computed(() => { return count.value * 2 }) return { count, doubleCount, addCount } }});</script>

watch與watchEffect的差別是,watchEffect會立馬執行,執行中被讀取的響應式 數據會被觀測。而watch只有在watch對象有變化時才會執行。

生命周期 beforeCreate -> 使用 setup() created -> 使用 setup() beforeMount -> onBeforeMount mounted -> onMounted beforeUpdate -> onBeforeUpdate updated -> onUpdated beforeDestroy -> onBeforeUnmount destroyed -> onUnmounted errorCaptured -> onErrorCaptured

以上就是Vue3 Composition API的使用簡介的詳細內容,更多關于Vue3 Composition API的使用的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美女久久精品| 99riav国产精品| 日韩高清在线一区| 欧美aⅴ一区二区三区视频| 精品中文在线| 麻豆国产欧美日韩综合精品二区| 日本精品一区二区三区在线观看视频| 在线看片日韩| 亚洲人成亚洲精品| 亚洲精品日本| 日韩精品免费一区二区夜夜嗨| 日韩精选在线| 国产精品qvod| 98精品久久久久久久| 精品一区二区男人吃奶| 日韩精品视频中文字幕| 日韩和欧美的一区| 国产日产一区| 久久亚洲人体| 国产精品不卡| 久久天堂成人| 久久成人一区| 国产亚洲一区二区三区啪| 精品99在线| 日韩中文视频| 午夜在线视频一区二区区别| 青青草视频一区| 福利一区视频| 亚洲精品午夜av福利久久蜜桃| 蜜桃视频在线观看一区| 亚洲精品第一| 精品91福利视频| 亚洲午夜av| 亚洲精品一二| 国产精品99一区二区三区| 99成人在线视频| 亚洲精品伊人| 成人一区不卡| 国产精品毛片在线| 国产情侣久久| 欧美特黄一级大片| 日韩免费精品| 美女视频免费精品| 999久久久精品国产| 亚洲欧洲免费| 蜜桃精品视频| 欧美日韩国产一区二区三区不卡 | 久热re这里精品视频在线6| 亚欧洲精品视频在线观看| 麻豆一区二区三| 久久中文字幕av| 涩涩涩久久久成人精品| 精品三级av在线导航| 欧美日韩高清| 国产精品亚洲欧美日韩一区在线| 激情综合网址| 国产香蕉精品| 天堂资源在线亚洲| 国产精品欧美大片| 亚洲免费黄色| 福利一区二区免费视频 | 欧美丝袜一区| 欧美日韩国产一区二区在线观看| 日韩精品网站| 欧美日韩中文| 国产综合色产| 国产精品一区二区精品| 欧美成人综合| 精品一区视频| 丝袜美腿一区二区三区| 麻豆精品视频在线观看视频| 午夜一级在线看亚洲| sm捆绑调教国产免费网站在线观看 | 日韩1区2区日韩1区2区| 亚洲视频综合| 久久这里只有| 日韩精品一区二区三区中文| 国产99久久| 美女视频免费精品| 亚洲精品第一| 午夜精品一区二区三区国产| 美女高潮久久久| 亚洲小说春色综合另类电影| 精品国产第一福利网站| 久久精品 人人爱| 好看的av在线不卡观看| 精品一级视频| 欧美亚洲三级| 免费看黄色91| 91精品在线观看国产| 久久精品三级| 欧美日韩亚洲一区三区| 久久亚洲电影| 好吊一区二区三区| 久久久水蜜桃av免费网站| 麻豆成人在线观看| 日韩精品1区2区3区| 蜜桃久久av| 欧美日韩在线网站| 久久青青视频| 久久精品国产成人一区二区三区| 日韩精品免费观看视频| 国产一区日韩欧美| 韩国三级一区| 老牛影视精品| 精品久久久网| 国产激情综合| 欧美亚洲综合视频| 日韩中文字幕| 中文字幕中文字幕精品| 性色一区二区| 欧美在线综合| 日韩精品一二三| 香蕉精品视频在线观看| 香蕉成人av| 亚洲精品.com| 久久视频国产| 999久久久亚洲| 国产99久久久国产精品成人免费| 日本在线高清| 性欧美videohd高精| 国产精品99一区二区三| 精品国内亚洲2022精品成人| 免费日韩一区二区三区| 免费在线观看一区| 国内精品伊人| 国产夫妻在线| 国产99久久| 99久久99久久精品国产片果冰| 久久久久久色| 日韩精品中文字幕吗一区二区| av不卡在线| 午夜一级久久| 中文字幕日韩亚洲| 日韩黄色免费网站| 国产美女亚洲精品7777| 99国产精品视频免费观看一公开| av中文字幕在线观看第一页| 欧美特黄一级| 老司机精品视频在线播放| 综合激情婷婷| 日韩精品亚洲专区在线观看| 日韩动漫一区| 日韩精品欧美| 99精品在线| 麻豆mv在线观看| 91精品成人| 91精品蜜臀一区二区三区在线| 久久高清精品| 日韩一级网站| 蜜臀va亚洲va欧美va天堂| 日日夜夜免费精品| 国产精品分类| 超碰99在线| 99riav国产精品| 日韩精品国产欧美| 麻豆成人在线观看| 久久婷婷激情| 奶水喷射视频一区| 日本大胆欧美人术艺术动态| 日韩福利视频网| 精品高清久久| 亚洲手机在线| 日韩一区二区三区精品| 国产精品多人| 久久国产电影| 爽爽淫人综合网网站| 18国产精品| 美女一区网站| 视频一区二区不卡| 国产精品超碰| 国产精品99免费看| 97成人在线| 天堂8中文在线最新版在线| 99久久亚洲精品蜜臀| 蜜臀久久久久久久| 麻豆精品视频在线| 国产精品av一区二区| 91精品麻豆| 久久亚洲成人| 国产亚洲一区二区三区不卡| 欧美二三四区| 亚洲精品伊人| 日产午夜精品一线二线三线| 99xxxx成人网| 麻豆91精品91久久久的内涵| 久久免费福利| 免播放器亚洲| 成人看片网站| 亚洲香蕉久久| 久久久久免费av| 日韩在线观看| 精品精品99| 成午夜精品一区二区三区软件| 福利一区和二区| 开心激情综合| 福利精品一区| 国产精品久久久久av电视剧| 欧美午夜不卡| 你懂的国产精品永久在线|