詳解Vue3.0 + TypeScript + Vite初體驗(yàn)
項(xiàng)目創(chuàng)建
npm:
$ npm init vite-app <project-name> $ cd <project-name> $ npm install $ npm run dev
or yarn:
$ yarn create vite-app <project-name> $ cd <project-name> $ yarn $ yarn dev
項(xiàng)目結(jié)構(gòu)
main.js
在個(gè)人想法上,我覺(jué)得createApp()是vue應(yīng)用的實(shí)例,createApp支持鏈?zhǔn)秸{(diào)用
App.vue:
這是兼容vue2.0的語(yǔ)法,下面是vue3.0 rfc寫(xiě)法(還處于實(shí)驗(yàn)性階段)。
rfc官方說(shuō)明
setup
data
setup是結(jié)合了vue2.0的created生命周期函數(shù)和data還有methods(后面會(huì)提到)
可直接 export 屬性(data)和方法(methods)
可以看出現(xiàn)在的name不是響應(yīng)式的,后面會(huì)介紹響應(yīng)式
methods
methods也是跟data一樣,直接export
效果:
Composition API
ref
聲明:
Ref可將一些基本屬性變成響應(yīng)式
reactive
上圖是reactive和ref混合使用,至于效果,請(qǐng)各自復(fù)制下方代碼體驗(yàn)
<template> <div id="app"> <div v-for="(item, index) in state.persons" :key="index"> {{ item.name }}是{{ item.age }}歲 </div> <div> <h3>修改zhangsan的年齡</h3> <input type="text" v-model="zAge" /> </div> </div> </template> <script lang="ts" setup="props, {emit}"> import { reactive, ref } from 'vue' export const zAge = ref(12) export const state = reactive({ persons: [ { name: 'zhangsan', age: zAge }, { name: 'lisi', age: 20 } ] }) </script>
computed
聲明:
效果:
watchEffect
聲明:
效果:
組件系統(tǒng)
全局注冊(cè)
App.vue
main.js
局部注冊(cè)
App.vue
setup
props
聲明props對(duì)象,在watchEffect中,console.log(props.msg)是可以看到父組件傳的值。props的默認(rèn)值和過(guò)濾在研究中。具體作用參考vue2.0 props作用
context
組件上下文
emit
聲明emit函數(shù),在setup="props, { emit }"要寫(xiě)上emit,不然會(huì)報(bào)錯(cuò),具體作用參考vue2.0 emit作用。
這是使用emit函數(shù)的一些例子。
attrs
研究ing…
slots
研究ing…
vue指令
重點(diǎn)講v-model,其他vue指令與2.0一樣
v-model
vue3.0開(kāi)始支持多個(gè)雙向綁定的參數(shù),這是vue2.0沒(méi)有的,v-model后面沒(méi)有跟其他屬性的話,那么在這個(gè)組件內(nèi)部它的默認(rèn)值是modelValue,如果想更新v-model,那么就需要emit('update:modelValue', data)
去更新v-model的默認(rèn)值modelValue。那么v-model后面有屬性的話(dragValue),那么在這個(gè)組件內(nèi)部它的值就是這個(gè)屬性名(dragValue),如果想更新v-model:dragValue的值,就需要emit('update:dragValue', data)
去更新v-model自定義的值。
更多的用法參考官方的文檔:https://github.com/vuejs/rfcs/blob/sfc-improvements/active-rfcs/0000-sfc-script-setup.md
到此這篇關(guān)于詳解Vue3.0 + TypeScript + Vite初體驗(yàn)的文章就介紹到這了,更多相關(guān)Vue3.0 TypeScript Vite內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue動(dòng)態(tài)組件實(shí)現(xiàn)選項(xiàng)卡切換效果
這篇文章主要為大家詳細(xì)介紹了vue動(dòng)態(tài)組件實(shí)現(xiàn)選項(xiàng)卡切換效果的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03vite(vue3)配置內(nèi)網(wǎng)ip訪問(wèn)的方法步驟
Vite是一個(gè)快速的構(gòu)建工具,Vue3是一個(gè)流行的JavaScript框架,下面這篇文章主要給大家介紹了關(guān)于vite(vue3)配置內(nèi)網(wǎng)ip訪問(wèn)的方法步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05Vue中接收二進(jìn)制文件流實(shí)現(xiàn)pdf預(yù)覽的方法
本文主要介紹了Vue中接收二進(jìn)制文件流實(shí)現(xiàn)pdf預(yù)覽的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12實(shí)用的 vue tags 創(chuàng)建緩存導(dǎo)航的過(guò)程實(shí)現(xiàn)
這篇文章主要介紹了實(shí)用的 vue tags 創(chuàng)建緩存導(dǎo)航的過(guò)程實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Vue iview-admin框架二級(jí)菜單改為三級(jí)菜單的方法
這篇文章主要介紹了Vue iview-admin框架二級(jí)菜單改為三級(jí)菜單的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Vue Element-ui實(shí)現(xiàn)樹(shù)形控件節(jié)點(diǎn)添加圖標(biāo)詳解
這篇文章主要為大家介紹了Element-ui實(shí)現(xiàn)樹(shù)形控件節(jié)點(diǎn)添加圖標(biāo),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-11-11vue如何利用store實(shí)現(xiàn)兩個(gè)平行組件間的傳值
這篇文章主要介紹了vue如何利用store實(shí)現(xiàn)兩個(gè)平行組件間的傳值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04vue element 生成無(wú)線級(jí)左側(cè)菜單的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue element 生成無(wú)線級(jí)左側(cè)菜單的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08優(yōu)選七個(gè)用于vue開(kāi)發(fā)的JS庫(kù)
這篇文章主要介紹了JavaScript優(yōu)選七個(gè)用于vue開(kāi)發(fā)庫(kù),借助開(kāi)源庫(kù)加速Vue項(xiàng)目的開(kāi)發(fā)進(jìn)度是現(xiàn)代前端開(kāi)發(fā)比較常見(jiàn)的方式,平常收集一些JavaScript庫(kù)介紹,在遇到需要的時(shí)候可以信手拈來(lái)2023-02-02