自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

React應(yīng)用程序配置TypeScript

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

[[346311]]

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

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.   <React.StrictMode>  //嚴(yán)格模式 
  8.     <App /> 
  9.   </React.StrictMode>, 
  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)目才能生效。

 

責(zé)任編輯:姜華 來(lái)源: 小丑的小屋
相關(guān)推薦

2021-09-26 08:30:31

Python應(yīng)用程序代碼

2009-07-29 17:01:13

2021-07-14 17:39:46

ReactRails API前端組件

2016-07-29 13:47:05

RethinkDBWeb

2009-09-14 09:17:43

.settings配置

2020-03-31 22:09:01

React應(yīng)用程序庫(kù)

2009-06-19 13:45:53

Java應(yīng)用程序Jfreechart

2012-06-07 09:15:14

ibmdw

2012-05-29 10:04:08

2022-03-14 08:54:04

NetlifyHTMLReact

2021-05-05 10:06:09

React應(yīng)用程序微前端

2009-07-16 17:09:02

Swing應(yīng)用程序

2012-02-15 13:26:56

IndexedDB

2011-07-21 10:47:37

iPhone Cocoa 委托

2011-12-02 14:17:51

Java

2009-12-10 15:35:10

ASP.Net 2.0

2013-11-19 15:35:01

2011-11-03 09:41:35

Android簽名安全性

2021-01-30 10:58:29

React應(yīng)用程序開(kāi)發(fā)

2024-05-15 11:42:33

FlutterWeb 庫(kù)應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)