日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
React應(yīng)用程序配置TypeScript

前言
最近在學(xué)習(xí)TypeScript的一些知識(shí)用到了 react,記錄一下 react 創(chuàng)建應(yīng)用項(xiàng)目和支持 TypeScript。

涪陵ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!

React 是一個(gè)用于構(gòu)建用戶界面 UI 的 JavaScript 庫(kù),它的創(chuàng)建默認(rèn)是不支持 TypeScript 的,本文使用的是 React16.13.1

在使用 react 的庫(kù)的時(shí)候我們需要安裝下面的幾個(gè)組件:

 
 
 
 
  1. node(npm,npx) 
  2. create-react-app 
  3. react-script-ts 
  4. typescript 

閱讀本文將學(xué)到:

  • 快速創(chuàng)建 React 應(yīng)用
  • tsconfig 的基本配置
  • 使用 React 中的 tsx 組件
  • tsx 中圖片編譯失敗

創(chuàng)建項(xiàng)目
這里默認(rèn)我們擁有 node 環(huán)境,使用 npx 快速安裝 React 的應(yīng)用程序

 
 
 
 
  1. npx create-react-app react-demo --script-version=react-script-ts 

在網(wǎng)絡(luò)條件不錯(cuò)的情況下,速度還是可觀的吧

 
 
 
 
  1. npx: 97 安裝成功,用時(shí) 22.955 秒 
  2.  
  3. We suggest that you begin by typing: 
  4.  
  5.   cd react-demo 
  6.   yarn start 
  7.  
  8. Happy hacking! 

創(chuàng)建好程序之后,我們記錄一下此時(shí)的目錄:

tsconfig 的基本配置
首先需要安裝TypeScript:

 
 
 
 
  1. npm i typescript -D 
  2. tsc --init 

生成我們需要的tsconfig.json文件之后,我們根據(jù)自己的需求去修改即可:

 
 
 
 
  1.   "compilerOptions": { 
  2.     "target": "ES2016", 
  3.     "module": "ESNext", 
  4.     "lib": [ 
  5.       "ES6", 
  6.       "DOM" 
  7.     ], 
  8.     "allowJs": true, 
  9.     "jsx": "react", 
  10.     "sourceMap": true, 
  11.     "outDir": "build/dist", 
  12.     "rootDir": "src", 
  13.     "importHelpers": true, 
  14.     "strict": true, 
  15.     "noImplicitAny": true, 
  16.     "strictNullChecks": true, 
  17.     "noImplicitThis": true, 
  18.     "noUnusedLocals": true, 
  19.     "noImplicitReturns": true, 
  20.     "moduleResolution": "node", 
  21.     "baseUrl": ".", 
  22.     "esModuleInterop": true, 
  23.     "skipLibCheck": true, 
  24.     "forceConsistentCasingInFileNames": true, 
  25.     "suppressImplicitAnyIndexErrors": true, 
  26.     "allowSyntheticDefaultImports": true, 
  27.     "resolveJsonModule": true, 
  28.     "isolatedModules": true, 
  29.     "noEmit": true 
  30.   }, 
  31.   "exclude": [ 
  32.     "node_modules", 
  33.     "build", 
  34.     "scripts", 
  35.     "acceptance-tests", 
  36.     "webpack", 
  37.     "jest", 
  38.     "src/setupTests.ts" 
  39.   ], 
  40.   "include": [ 
  41.     "src" 
  42.   ] 

使用 React 中的 tsx 組件
tsx 是相當(dāng)于 jsx 的 TypeScript 版本,在目錄中我們將.js 后綴結(jié)尾的改成.tsx 結(jié)尾

 
 
 
 
  1. import React from 'react'; 
  2. import ReactDOM from 'react-dom'; 
  3. import App from './App'; 
  4. import * as serviceWorker from './serviceWorker'; 
  5.  
  6. ReactDOM.render( 
  7.     //嚴(yán)格模式 
  8.      
  9.   , 
  10.   document.getElementById('root') as HTMLElement 
  11. ); 
  12.  
  13. serviceWorker.unregister(); 

tsx 中圖片編譯失敗
在修改完文件名字后發(fā)現(xiàn)圖片編譯失敗

在使用 Webpack,使用靜態(tài)資源,如圖片和字體,工作方式類似于 CSS??梢灾苯釉?TypeScript 模塊中導(dǎo)入文件。這告訴 Webpack 將該文件包含在 bundle 中。與 CSS 導(dǎo)入不同,導(dǎo)入一個(gè)文件會(huì)給你一個(gè)字符串值。這個(gè)值是您可以在代碼中引用的最終路徑,例如,作為圖像的 src 屬性或指向 PDF 的鏈接的 href。

為了減少對(duì)服務(wù)器的請(qǐng)求數(shù)量,導(dǎo)入少于 10,000 字節(jié)的映像將返回一個(gè)數(shù)據(jù) URI 而不是路徑。這適用于以下文件擴(kuò)展名: bmp、 gif、 jpg、 jpeg 和 png。SVG 文件被排除。

在開(kāi)始之前,必須將每種類型定義為有效的模塊格式。否則,TypeScript 編譯報(bào)錯(cuò)

要在 TypeScript 中導(dǎo)入這些文件,請(qǐng)?jiān)陧?xiàng)目中創(chuàng)建一個(gè)新的類型定義文件,并將其命名為 assets.d.ts。然后,為需要導(dǎo)入的每種類型的資產(chǎn)添加一行:

 
 
 
 
  1. declare module '*.svg' 
  2. declare module '*.png' 
  3. declare module '*.jpg' 
  4. declare module '*.jpeg' 
  5. declare module '*.gif' 
  6. declare module '*.bmp' 
  7. declare module '*.tiff' 

配置之后需要npm start重新啟動(dòng)項(xiàng)目才能生效。


文章標(biāo)題:React應(yīng)用程序配置TypeScript
文章來(lái)源:http://m.5511xx.com/article/coedccs.html