VUE+TS項(xiàng)目搭建

一湿滓,Vue+TS構(gòu)建

npm create vite@latest my-vue-app -- --template vue-ts 
//1.npm create vite@latest 基于最新版本vite進(jìn)行項(xiàng)目創(chuàng)建  
//2.my-vue-app 項(xiàng)目名稱
//3.-- --template vue-ts  選擇vue+ts進(jìn)行開發(fā)

vue的兩個(gè)插件
1.Volar:對(duì)vue文件進(jìn)行實(shí)時(shí)的類型錯(cuò)誤反饋
2.TypeScript Vue Plugin 用于支持在TS中使用import * vue文件

二柳弄,ref標(biāo)注類型

既可以在給ref對(duì)象的value賦值時(shí)校驗(yàn)數(shù)據(jù)類型,同時(shí)在使用value的時(shí)候獲得代碼提示

const year  = ref<string | number>(2080) //初始值
year.value = '2029'

案列


image.png

image.png

三上渴、為reactive標(biāo)注類型

為reactive標(biāo)注類型之后蝉稳,既可以在響應(yīng)式 對(duì)象在修改屬性的時(shí)候約束類型破婆,也可以在使用獲得代碼提示啄巧。

type form ={
username:string,
password:string,
isagree?:boolean //這樣的寫法可以有屬性也可以沒(méi)有
}

const form1:form = reactive({
username:' ',
password:' ',
isagree:true
})
type form = {
  username: string,
  address: string,
  phone: string,
  gender?: string

}
const form1: form = reactive({
  username: ' ',
  address: '',
  phone: '',


})
form1.address = '北京'

四寻歧、為計(jì)算屬性進(jìn)行類型標(biāo)注

將下述圖片中商品大于500的篩選出來(lái)

type Item = {
id:string,
name:string,
price:number
}

const list = ref <Item[]>
//得出一個(gè)新數(shù)組
const filterList = computed(()=>list.value.filter(item=>item.price>500));

五,事件處理函數(shù)標(biāo)注類型

原生的DOM事件處理函數(shù)默認(rèn)會(huì)自動(dòng)標(biāo)注為any類型,為了獲得更好的代碼提示,需要手動(dòng)標(biāo)注類型。

為事件函數(shù)標(biāo)注類型

  1. 給事件對(duì)象e 標(biāo)注為Event類型,可以獲得事件對(duì)象的相關(guān)提示
  2. 需要更加精確的DOM類型提示可以使用斷言as進(jìn)行操作

六秩仆、為模板引用標(biāo)注類型

image.png

七,對(duì)象的非空值處理

當(dāng)對(duì)象的屬性可能是null和undefined的時(shí)候,稱之為"空值",嘗試訪問(wèn)空值身上的屬性或方法時(shí)可能會(huì)出現(xiàn)錯(cuò)誤码泛。
?.,可選鏈的值為undefined或null時(shí),會(huì)停止運(yùn)行
或者使用條件判斷
非空斷言! 開發(fā)者明確知道當(dāng)前值一定不是空值

八、為組件的props標(biāo)注類型

父?jìng)髯?/strong>
確保給組件傳遞的prop類型是安全的

image.png

組件內(nèi)部使用props和組件傳遞prop屬性有代碼提示澄耍。
使用defineProps宏函數(shù)對(duì)組件props進(jìn)行類型標(biāo)注

image.png

props默認(rèn)值的設(shè)置
外面嵌套一個(gè)withDefaults噪珊,一般設(shè)置為可選的上面
image.png

//定義props類型
type BtnType='sucess'|'warning'|'defeat'
type Props = {
    color: string,
    size?: string,
    btntype:BtnType
}
//2.defineProps<props>
const props = withDefaults(defineProps<Props>(), {
    btntype:'sucess'
})

九、給組件emits標(biāo)注類型

子傳父
可以約束事件名稱并給提示,同時(shí)約束傳參類型,不會(huì)發(fā)生錯(cuò)誤
通過(guò)defineEmits宏函數(shù)進(jìn)行類型標(biāo)注
需求:子組件觸發(fā)一個(gè)get-msg的事件,并傳遞一個(gè)string類型的參數(shù)

1.通過(guò)type定義事件類型

type Emits = {(e:'get-msg',msg:string):void

}

2.給泛型參數(shù)傳參

const emit = defineEmits<Emits>()

觸發(fā)

emit('get-msg','i am a son compoment')
image.png

image.png

十齐莲、類型聲明文件

在TS中以d.ts為后綴的文件就是類型聲明文件,主要作用為js模塊提供類型信息支持

十一卿城,js ->TS的思想

image.png

定義axios的request方法通過(guò)泛型指定
axios.request<后端接口定義的數(shù)據(jù)類型>

后端根據(jù)接口文檔返回的數(shù)據(jù)格式是這樣的


image.png
type channelsItem = {
    id:BigInteger,
    name:string
  }

  type res = {
    data:{
      channel:channelsItem[]
    },
    message:string
  }

使用的時(shí)候傳到對(duì)應(yīng)的泛型中


image.png

三,action異步

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市铅搓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搀捷,老刑警劉巖星掰,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件多望,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡氢烘,警方通過(guò)查閱死者的電腦和手機(jī)怀偷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)播玖,“玉大人椎工,你說(shuō)我怎么就攤上這事∈裉ぃ” “怎么了维蒙?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)果覆。 經(jīng)常有香客問(wèn)我颅痊,道長(zhǎng),這世上最難降的妖魔是什么局待? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任斑响,我火速辦了婚禮,結(jié)果婚禮上钳榨,老公的妹妹穿的比我還像新娘舰罚。我一直安慰自己,他們只是感情好薛耻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布营罢。 她就那樣靜靜地躺著,像睡著了一般昭卓。 火紅的嫁衣襯著肌膚如雪愤钾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天候醒,我揣著相機(jī)與錄音能颁,去河邊找鬼。 笑死倒淫,一個(gè)胖子當(dāng)著我的面吹牛伙菊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播敌土,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼镜硕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了返干?” 一聲冷哼從身側(cè)響起兴枯,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎矩欠,沒(méi)想到半個(gè)月后财剖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悠夯,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年躺坟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沦补。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咪橙,死狀恐怖夕膀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情美侦,我是刑警寧澤产舞,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站音榜,受9級(jí)特大地震影響庞瘸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜赠叼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一擦囊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嘴办,春花似錦瞬场、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至妆艘,卻和暖如春彤灶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背批旺。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工幌陕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人汽煮。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓搏熄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親暇赤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子心例,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容