詳解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è)人想法上,我覺得createApp()是vue應(yīng)用的實(shí)例,createApp支持鏈?zhǔn)秸{(diào)用
App.vue:
這是兼容vue2.0的語法,下面是vue3.0 rfc寫法(還處于實(shí)驗(yàn)性階段)。
rfc官方說明
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)值和過濾在研究中。具體作用參考vue2.0 props作用
context
組件上下文
emit
聲明emit函數(shù),在setup="props, { emit }"要寫上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開始支持多個(gè)雙向綁定的參數(shù),這是vue2.0沒有的,v-model后面沒有跟其他屬性的話,那么在這個(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訪問的方法步驟
Vite是一個(gè)快速的構(gòu)建工具,Vue3是一個(gè)流行的JavaScript框架,下面這篇文章主要給大家介紹了關(guān)于vite(vue3)配置內(nèi)網(wǎng)ip訪問的方法步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05Vue中接收二進(jìn)制文件流實(shí)現(xiàn)pdf預(yù)覽的方法
本文主要介紹了Vue中接收二進(jìn)制文件流實(shí)現(xiàn)pdf預(yù)覽的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12實(shí)用的 vue tags 創(chuàng)建緩存導(dǎo)航的過程實(shí)現(xiàn)
這篇文章主要介紹了實(shí)用的 vue tags 創(chuàng)建緩存導(dǎo)航的過程實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Vue iview-admin框架二級(jí)菜單改為三級(jí)菜單的方法
這篇文章主要介紹了Vue iview-admin框架二級(jí)菜單改為三級(jí)菜單的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07Vue Element-ui實(shí)現(xiàn)樹形控件節(jié)點(diǎn)添加圖標(biāo)詳解
這篇文章主要為大家介紹了Element-ui實(shí)現(xiàn)樹形控件節(jié)點(diǎn)添加圖標(biāo),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-11-11vue如何利用store實(shí)現(xiàn)兩個(gè)平行組件間的傳值
這篇文章主要介紹了vue如何利用store實(shí)現(xiàn)兩個(gè)平行組件間的傳值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04vue element 生成無線級(jí)左側(cè)菜單的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue element 生成無線級(jí)左側(cè)菜單的實(shí)現(xiàn)代碼,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08