欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue-cli3+typescript初體驗(yàn)小結(jié)

 更新時(shí)間:2019年02月28日 10:06:32   作者:陳其文  
這篇文章主要介紹了vue-cli3+typescript初體驗(yàn)小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

前言

氣勢(shì)洶涌,ts似乎已經(jīng)在來(lái)的路上,隨時(shí)可能敲門(mén)。

2015年,三大前端框架開(kāi)始火爆的時(shí)候,我還在抱著B(niǎo)ackbone不放,一直覺(jué)得可以輕易轉(zhuǎn)到其他框架去。后來(lái)?yè)Q工作,現(xiàn)實(shí)把臉都打腫了,沒(méi)做過(guò)vue、react、angular?不要!

今天,不能犯這個(gè)錯(cuò)了,畢竟時(shí)不我與,都快奔三了。

vue-cli3

vue-cli3的詳細(xì)功能推薦官方文檔,不在本文介紹范圍內(nèi)。

安裝:

npm install -g @vue/cli

檢查安裝成功與否:

vue --version

創(chuàng)建項(xiàng)目:

vue create myapp

可以選擇Manually select feature來(lái)自由選擇功能,常用的有vuex、vue-router、CSS Pre-processors等,我們?cè)侔裻ypescript勾上,就可以回車(chē)進(jìn)入下一步了。PS:勾選的操作是按空格鍵。
創(chuàng)建成功之后,執(zhí)行啟動(dòng)命令:

npm run serve

就可以通過(guò)http://localhost:8080/訪問(wèn)本地項(xiàng)目啦。

typescript

如果沒(méi)有typescript基礎(chǔ),可以先補(bǔ)補(bǔ)課,大概花三十分鐘就可以了解typescript的一些特性,比如:TypeScript 入門(mén)教程。
ts最主要的一點(diǎn)就是類(lèi)型定義,有個(gè)概念才好看得懂demo。

vue-property-decorator

這是一個(gè)涵蓋了vue的一些對(duì)象的集合,我們可以從這里取一些東西出來(lái):

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

取出來(lái)的這幾個(gè)屬性,分別是 組件定義Component,父組件傳遞過(guò)來(lái)的參數(shù)Prop,原始vue對(duì)象Vue,數(shù)據(jù)監(jiān)聽(tīng)對(duì)象Watch。還包括這里沒(méi)有列舉出來(lái)的ModelEmit,InjectProvide,可以自己嘗試下。

demo

<template>
 <div class="hello">
  <h1>{{ msg }}--{{ names }}</h1>
  <input type="text" v-model="txt">
  <p>{{ getTxt }}</p>
  <button @click="add">add</button>
  <p>{{ sum }}</p>
 </div>
</template>

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

@Component
export default class HelloWorld extends Vue {
 //props
 @Prop() private msg!: string
 @Prop() private names!: string
 //data
 private txt: string = '1'
 private sum: number = 0
 //computed
 get getTxt(){
  return this.txt
 }
 //methods
 private add(){
  this.sum++
  console.log(`sum : ${this.sum}`)
 }
 //生命周期
 created(){
  console.log('created')
 }
 //watch
 @Watch('txt') 
 changeTxt(newTxt: string, oldTxt: string){
  console.log(`change txt: ${oldTxt} to ${newTxt}`)
 }
 
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="less">
h3 {
 margin: 40px 0 0;
}
input {
 width: 240px;
 height: 32px;
 line-height: 32px;
}
</style>

以上就是demo,代碼組織有點(diǎn)散,沒(méi)有原來(lái)js書(shū)寫(xiě)的整齊。

這個(gè)demo沒(méi)有引入組件,如果需要引入組件,應(yīng)該這樣書(shū)寫(xiě):

<template>
 <div class="home">
  <img alt="Vue logo" src="../assets/logo.png">
  <HelloWorld msg="Welcome to Your Vue.js + TypeScript App" names="aaa" />
  <HelloWorld2 msg="Welcome to Your Vue.js + TypeScript App" names="bbb" />
 </div>
</template>

<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';
import HelloWorld from '@/components/HelloWorld.vue'; // @ is an alias to /src
import HelloWorld2 from '@/components/HelloWorld2.vue'; // @ is an alias to /src

@Component({
 components: {
  HelloWorld,
  HelloWorld2,
 },
})
export default class Home extends Vue {}
</script>

結(jié)語(yǔ)

如果VSCode編輯器有警告提示,比如:

Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option to remove this warning.

可以把工作區(qū)其他的項(xiàng)目移除,或者把本項(xiàng)目拖動(dòng)到工作區(qū)的首位,或者在把本項(xiàng)目的tsconfig.json復(fù)制到工作區(qū)首位的項(xiàng)目的根目錄下,重啟編輯器,有比較大的概率可以解決警告提示。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論