最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3+script setup+ts+Vite+Volar搭建項(xiàng)目

 更新時(shí)間:2021年08月23日 12:03:59   作者:Holyforsaken_FHC  
本文主要介紹了Vue3+script setup+ts+Vite+Volar搭建項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

好久沒有寫了,最近看到Vue3.2 發(fā)布了,害,又要開始卷了么。
其實(shí)我自己本身還沒有使用過Vue3 做過實(shí)際的項(xiàng)目開發(fā),然鵝又出新東西了……,
新時(shí)代農(nóng)民工真的是左手工作,右手游戲,還要用jio去學(xué)習(xí)呢。

什么? 你說談對(duì)象? xswl,我特么一個(gè)農(nóng)民工也配談對(duì)象?

不卷不行啊,我踏馬再看看自己盆友圈發(fā)的什么玩意?嗯 ,還是永劫無間香

好了,廢話不多說,我們直接開始吧~

使用 Vite 創(chuàng)建 vue + ts 項(xiàng)目

參考 Vite 官方指南

執(zhí)行執(zhí)行,創(chuàng)建項(xiàng)目模板

	$ npm init vite@latest
	√ Project name: ... v3_demo
	√ Select a framework: » vue
	√ Select a variant: » vue-ts
	
	Scaffolding project in C:\Users\admin\Desktop\v3_demo...
	
	Done. Now run:
	
	  cd v3_demo
	  npm install
	  npm run dev

項(xiàng)目目錄結(jié)構(gòu)說明

	
	├── public                  # 不需要打包的靜態(tài)資源
	│   └── favicon.ico
	├── src
	│   ├── api                 # 后臺(tái) API 接口封裝
	│   ├── assets              # 需要打包的靜態(tài)資源
	│   ├── components          # 公共組件
	│   ├── composables         # 通用的組合式 API
	│   ├── layout              # 頁面布局模板
	│   ├── plugins             # 插件
	│   ├── router              # 路由
	│   ├── store               # Vuex 存儲(chǔ)
	│   ├── styles              # 樣式
	│     └── index.scss        # 全局通用樣式
	│   ├── utils               # 工具模塊
	│   ├── views               # 路由頁面
	│   ├── App.vue             # 根組件
	│   ├── main.ts             # 入口模塊
	│   ├── shims-vue.d.ts      # 補(bǔ)充 .vue 模塊類型聲明
	│   └── vite-env.d.ts       # 補(bǔ)充 vite 類型聲明
	├── .gitignore
	├── README.md
	├── index.html
	├── package-lock.json
	├── package.json
	├── tsconfig.json
	└── vite.config.ts

vite新建vue3項(xiàng)目運(yùn)行報(bào)錯(cuò)
創(chuàng)建完項(xiàng)目,肯定是要安裝依賴包,再運(yùn)行,但是盆友們會(huì)發(fā)現(xiàn),運(yùn)行直接報(bào)錯(cuò)了

admin@DESKTOP-ABKQLS5 C:\Users\admin\Desktop\v3_demo
$ npm run dev

> v3_demo@0.0.0 dev
> vite

events.js:292
      throw er; // Unhandled 'error' event
      ^

Error: spawn C:\Users\admin\Desktop\v3_demo\node_modules\esbuild\esbuild.exe ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:269:19)
    at onErrorNT (internal/child_process.js:465:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
    at onErrorNT (internal/child_process.js:465:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'spawn C:\\Users\\admin\\Desktop\\v3_demo\\node_modules\\esbuild\\esbuild.exe',
  path: 'C:\\Users\\admin\\Desktop\\v3_demo\\node_modules\\esbuild\\esbuild.exe',
  spawnargs: [ '--service=0.12.22', '--ping' ]
}

解決辦法: node ./node_modules/esbuild/install.js

在 Vite 創(chuàng)建的項(xiàng)目中,是默認(rèn)沒有ESLint的

Vite中 TS 的說明

Vite 天然支持引入 .ts 文件。
Vite 僅執(zhí)行 .ts 文件的轉(zhuǎn)譯工作,并 不 執(zhí)行任何類型檢查。并假設(shè)類型檢查已經(jīng)被你的 IDE 或構(gòu)建過程接管了(你可以在構(gòu)建腳本中運(yùn)行 tsc --noEmit 或者安裝 vue-tsc 然后運(yùn)行 vue-tsc --noEmit 來對(duì)你的 *.vue 文件做類型檢查)。
Vite 使用 esbuild 將 TypeScript 轉(zhuǎn)譯到 JavaScript,約是 tsc 速度的 20~30 倍,同時(shí) HMR 更新反映到瀏覽器的時(shí)間小于 50ms。
注意因?yàn)?esbuild 只執(zhí)行轉(zhuǎn)譯工作而不含類型信息,所以它不支持 TypeScript 的特定功能例如常量枚舉和隱式 “type-only” 導(dǎo)入。你必須在你的 tsconfig.json 中的 compilerOptions 里設(shè)置 “isolatedModules”: true,這樣 TS 才會(huì)警告你哪些功能無法與獨(dú)立編譯模式一同工作

vue-tsc 和 tsc
tsc 只能驗(yàn)證 ts 代碼類型
vue-tsc 可以驗(yàn)證 ts + Vue Template 中的類型(基于 Volar)
建議在 package.json 中新增一個(gè) scripts 腳本用來單獨(dú)執(zhí)行 TS 類型驗(yàn)證:

"scripts": {
	  ...
	  "build": "npm run tsc && vite build",
	  "tsc": "vue-tsc -noEmit"
	}

-noEmit 表示只驗(yàn)證類型,不輸出編譯結(jié)果

跳過第三方包類型檢查, 在tsconfig.json中添加:

	{
	  "compilerOptions": {
	    ...
	    "baseUrl": "./",
	    "skipLibCheck": true
	  }
	}

Vue3 的TS具體語法,這里不再贅述,不會(huì)的小伙伴可以直接參考 官方文檔

Vue 3 的三種語法

茴香豆的茴字 有四種寫法,而打工人的Vue3 也有三種語法,時(shí)代在變,初心不變,各位孔老爺請(qǐng)看下文。

Option API

這個(gè)不多贅述了,會(huì)寫vue的都會(huì),這就是vue2 大家最常用的 選項(xiàng)式API

Composition API

組合式API,也就是Vue3誕生以來,最為人津津樂道的語法更新,也是我們下面script setup 語法的基礎(chǔ)

如果還不會(huì)的前端盆友們,趕緊卷起來吧! Composition API

script setup(Composition API 的語法糖)

<script setup> 是在單文件組件 (SFC) 中使用組合式 API 的編譯時(shí)語法糖。相比于普通的

更少的樣板內(nèi)容,更簡潔的代碼。
能夠使用純 Typescript 聲明 props 和發(fā)出事件。
更好的運(yùn)行時(shí)性能 (其模板會(huì)被編譯成與其同一作用域的渲染函數(shù),沒有任何的中間代理)。
更好的 IDE 類型推斷性能 (減少語言服務(wù)器從代碼中抽離類型的工作)。

這里就不貼尤雨溪的文章截圖了,script setup 已經(jīng)由實(shí)驗(yàn)狀態(tài)正式畢業(yè),現(xiàn)提供穩(wěn)定版本

在添加了setup的script標(biāo)簽中,我們不必聲明和方法,這種寫法會(huì)自動(dòng)將所有頂級(jí)變量、函數(shù),均會(huì)自動(dòng)暴露給模板(template)使用

這里強(qiáng)調(diào)一句 “暴露給模板,跟暴露給外部不是一回事

以項(xiàng)目模板的 HelloWorld.vue 為例,Composition API的語法:

	
	<script lang="ts">
	import { ref, defineComponent } from "vue";
	export default defineComponent({
	  name: "HelloWorld",
	  props: {
	    msg: {
	      type: String,
	      required: true,
	    },
	  },
	  setup: () => {
	    const count = ref(0);
	    return { count };
	  },
	});
	</script>

采用 setup 之后:

	<script lang="ts" setup>
	import { ref, defineProps } from "vue";
	const count = ref(0);
	const props = defineProps({
	  msg: {
	    type: String,
	    required: true,
	  },
	});
	</script>
	

具體的語法,參考 script setup

安裝 Volar

Volar 是一個(gè) vscode 的插件,volar提供了非常臥槽的功能。

安裝的方式很簡單,直接在vscode的插件市場(chǎng)搜索volar,然后點(diǎn)擊安裝就可以了。

在這里插入圖片描述

這里簡單列幾個(gè)我趕腳非常快樂的功能:

編輯器快捷分割
vue單文件組件,按照功能,存在template、script、style三個(gè)根元素。
安裝完 Volar之后 vscode 右上角會(huì)多出來一個(gè)小圖標(biāo)

在這里插入圖片描述

點(diǎn)它一下,我們的vue文件,按照功能,被拆分成了三個(gè)視窗,并且每個(gè)視窗都負(fù)責(zé)自己的功能,其他的兩個(gè)根元素都被合并了。

也就是說,我們可以非常容易的進(jìn)行區(qū)分開template、script、style了,把一個(gè)文件拆成三個(gè)窗口,當(dāng)三個(gè)文件來用,而且全部由插件來幫你完成,我們只需要點(diǎn)一下即可

在這里插入圖片描述

style里面的class引用

在這里插入圖片描述

可以看到,在.someclass這個(gè)類名上面,出現(xiàn)了一個(gè)1 reference的小圖標(biāo),代表著當(dāng)前class有一次引用,我們點(diǎn)擊一下這個(gè)1 reference,會(huì)出現(xiàn)一個(gè)彈窗,里面是當(dāng)前class的具體使用位置

在這里插入圖片描述

class追溯

在template中的一個(gè)使用class屬性的元素上,按住ctrl + 鼠標(biāo)左鍵點(diǎn)擊

在這里插入圖片描述

就會(huì)直接跳轉(zhuǎn)到類名所在的位置

在這里插入圖片描述 

結(jié)尾

以上,就是創(chuàng)建一個(gè)vue3 + script setup + ts + vite + volar 項(xiàng)目的基本流程,當(dāng)然還沒有結(jié)束,因?yàn)槲覀冞€需要安裝vue-router@4 和 vuex@next 以及 UI 組件庫之類的,不過那些都比較基礎(chǔ)了,小伙伴們可以輕松搞定。

到此這篇關(guān)于Vue3+script setup+ts+Vite+Volar搭建項(xiàng)目的文章就介紹到這了,更多相關(guān)Vue3+script setup+ts+Vite+Volar內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3使用Suspense優(yōu)雅地處理異步組件加載的示例代碼

    Vue3使用Suspense優(yōu)雅地處理異步組件加載的示例代碼

    Vue3是Vue.js的最新版本,它帶來了許多令人興奮的新特性和改進(jìn),其中一個(gè)重要的特性是Suspense,它為我們提供了一種優(yōu)雅地處理異步組件加載和錯(cuò)誤處理的方式,本文給大家介紹了Vue3使用Suspense優(yōu)雅地處理異步組件加載的示例,需要的朋友可以參考下
    2024-01-01
  • vue bus全局事件中心簡單Demo詳解

    vue bus全局事件中心簡單Demo詳解

    ue-bus 提供了一個(gè)全局事件中心,并將其注入每一個(gè)組件,你可以像使用內(nèi)置事件流一樣方便的使用全局事件。這篇文章給大家介紹了vue bus全局事件中心簡單Demo,需要的朋友參考下吧
    2018-02-02
  • vue跨域問題:Access?to?XMLHttpRequest?at‘httplocalhost解決

    vue跨域問題:Access?to?XMLHttpRequest?at‘httplocalhost解決

    在前端發(fā)出Ajax請(qǐng)求的時(shí)候,有時(shí)候會(huì)產(chǎn)生跨域問題,下面這篇文章主要給大家介紹了關(guān)于vue跨域問題:Access?to?XMLHttpRequest?at‘httplocalhost的解決辦法,需要的朋友可以參考下
    2023-01-01
  • 在vue項(xiàng)目中集成graphql(vue-ApolloClient)

    在vue項(xiàng)目中集成graphql(vue-ApolloClient)

    這篇文章主要介紹了在vue項(xiàng)目中集成graphql(vue-ApolloClient),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue項(xiàng)目中各文件的使用說明

    vue項(xiàng)目中各文件的使用說明

    這篇文章主要介紹了vue項(xiàng)目中各文件的使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • vue組件傳遞對(duì)象中實(shí)現(xiàn)單向綁定的示例

    vue組件傳遞對(duì)象中實(shí)現(xiàn)單向綁定的示例

    下面小編就為大家分享一篇vue組件傳遞對(duì)象中實(shí)現(xiàn)單向綁定的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 在vue中路由使用this.$router.go(-1)返回兩次問題

    在vue中路由使用this.$router.go(-1)返回兩次問題

    這篇文章主要介紹了在vue中路由使用this.$router.go(-1)返回兩次問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Element實(shí)現(xiàn)動(dòng)態(tài)增加多個(gè)輸入框并校驗(yàn)

    Element實(shí)現(xiàn)動(dòng)態(tài)增加多個(gè)輸入框并校驗(yàn)

    本文主要介紹了Element實(shí)現(xiàn)動(dòng)態(tài)增加多個(gè)輸入框并校驗(yàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Vue3中使用Pinia修改State的五種方式

    Vue3中使用Pinia修改State的五種方式

    這篇文章主要介紹了Vue3中使用Pinia修改State的五種方式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2023-11-11
  • Vue+Element UI+Lumen實(shí)現(xiàn)通用表格分頁功能

    Vue+Element UI+Lumen實(shí)現(xiàn)通用表格分頁功能

    這篇文章主要介紹了Vue+Element UI+Lumen實(shí)現(xiàn)通用表格分頁功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02

最新評(píng)論

灵丘县| 福清市| 潞城市| 南昌县| 清涧县| 上思县| 兖州市| 西昌市| 江门市| 获嘉县| 兴山县| 安顺市| 上高县| 疏勒县| 民权县| 定西市| 内黄县| 司法| 新津县| 永丰县| 平凉市| 招远市| 湖州市| 平度市| 铜梁县| 宝坻区| 东明县| 贵定县| 板桥市| 安图县| 大方县| 兰州市| 富蕴县| 佳木斯市| 海晏县| 绥德县| 吉木乃县| 龙井市| 竹北市| 雅江县| 微山县|