91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Vue.js中如何使用TypeScript

發布時間:2021-02-25 10:09:31 來源:億速云 閱讀:368 作者:清風 欄目:web開發

這篇文章主要為大家展示了在Vue.js中如何使用TypeScript,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“在Vue.js中如何使用TypeScript”這篇文章吧。

vue是什么軟件

Vue是一套用于構建用戶界面的漸進式JavaScript框架,Vue與其它大型框架的區別是,使用Vue可以自底向上逐層應用,其核心庫只關注視圖層,方便與第三方庫和項目整合,且使用Vue可以采用單文件組件和Vue生態系統支持的庫開發復雜的單頁應用。

雖然 vue2.x 對TypeScript的支持還不是非常完善,但是從今年即將到來的3.0版本在GitHub上的倉庫 vue-next 看,為TS提供更好的官方支持應該也會是一個重要特性,那么,在迎接3.0之前,不妨先來看看目前版本二者的搭配食用方法吧~

創建項目

  • 雖然GitHub上有各種各樣相關的Starter,但是使用 Vue CLI 應該是目前相對比較好的方式,在使用 vue create 創建新項目時,對 preset 選擇 Manually select features 選項,之后添加 TypeScript

  • 如果想在vue應用中完整使用ES6中提供的類特性,那么在 class-style component syntax 處選擇Y(本文主要介紹選擇Y的情況)

  • 對于 Babel 來說,一般情況選擇使用,而 linter / formatter 的具體選擇可根據項目需求,此處不多說明

進入項目

創建完成后,看一看 package.json ,可以發現 vue-class-componentvue-property-decorator 以及其他ts相關的modules都已被添加,其中: vue-class-component 可以讓你使用class-style語法創建組件,比如以下代碼:

<template>
 <div>
 <button @click="decrement">-</button>
 {{ count }}
 <button @click="increment">+</button>
 </div>
</template>

<script lang="ts">
 import Vue from 'vue'
 import Component from 'vue-class-component'

 // Define the component in class-style
 @Component
 export default class Counter extends Vue {
 // Class properties will be component data
 count = 0

 // Methods will be component methods
 increment() {
  this.count++
 }

 decrement() {
  this.count--
 }
 }
</script>

vue-property-component 則完全依賴于前者,提供了除 @Component 外的其他幾種裝飾器,比如 @Prop

import { Vue, Component, Prop } from 'vue-property-decorator'

 @Component
 export default class YourComponent extends Vue {
 @Prop(Number) readonly propA: number | undefined
 @Prop({ default: 'default value' }) readonly propB!: string
 @Prop([String, Boolean]) readonly propC: string | boolean | undefined
}

再來一個二者結合的簡單例子吧:

<template>
 <div class="hello">
 <h2>{{ msg }}</h2>
 <h2>{{ fullName }}</h2>
 <button @click="reverseStr()">Reverse</button>
 </div>
</template>

<script lang="ts">
import { Component, Prop, Vue, Watch } from 'vue-property-decorator';

@Component
export default class HelloWorld extends Vue {
 @Prop() private msg!: string;
 firstName = "rapt";
 lastName = "azure";

 mounted() {
 console.log('mounted');
 }

 // Computed property
 get fullName(): string {
 return this.firstName + this.lastName;
 }

 // Method
 reverseStr() {
 this.firstName = this.firstName.split('').reverse().join('');
 this.lastName = this.lastName.split('').reverse().join('');
 }

}
</script>
  • 此時,你的vue項目已經有fully-typed的可能了,當然也會有更好的自動補全以及錯誤提示。

  • 為了更好的確定類型,可以創建例如 interfaces 這樣的文件夾,充分利用ts的接口和類來使項目有更好的組織結構,可讀性和維護性。

另一種選擇

其實當然也可以不使用class風格啦,這樣的話,就和平時熟悉的vue更為相似了,而對類型當然也是完全支持的。
這里也提供一個簡單的例子吧~<template>

<div class="hello">
  <h2>{{ msg }}</h2>
  <h2>{{ test }}</h2>
 </div>
</template>

<script lang="ts">
import Vue from 'vue';

export default Vue.extend({
 name: 'HelloWorld',
 props: {
  msg: String,
 },
 data() {
  return {
   test: "Hello from TS" as string
  }
 },
 methods: {
  pressMe(): string {
   return this.test + 'br'
  }
 }
});
</script>

其他的話

  • 本文只是簡要探討了在Vue.js中使用TypeScript的可能性,更多的相關內容在 官方文檔 里可以找到哦,或者也可以多去Github的Vue區,TS區逛逛呢~

  • TypeScript的出現為JavaScript的生態帶來了新活力,不管是前端三大框架Vue,React,Angular,還是Node系的后端框架比如Nest和Express,都在積極擁抱TS,希望以后整個生態會發展得越來越好吧~

以上就是關于“在Vue.js中如何使用TypeScript”的內容,如果改文章對你有所幫助并覺得寫得不錯,勞請分享給你的好友一起學習新知識,若想了解更多相關知識內容,請多多關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梓潼县| 建水县| 榆树市| 泌阳县| 新蔡县| 腾冲县| 锡林浩特市| 广州市| 二手房| 乐安县| 张北县| 汝阳县| 库尔勒市| 县级市| 岑溪市| 洛南县| 永春县| 揭阳市| 蒲城县| 鸡西市| 志丹县| 噶尔县| 余江县| 同仁县| 宁强县| 岳阳县| 建宁县| 香河县| 合山市| 长顺县| 泗阳县| 梨树县| 东乌珠穆沁旗| 汶上县| 威远县| 廊坊市| 武强县| 临桂县| 商都县| 龙州县| 天津市|