vscode搭建Typescript+React+Dva的开发环境
这篇文章主要介绍了关于vscode搭建Typescript+React+Dva的开发环境,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
[ 作为2018年前端最应该学的技术 ], Typescript 确实惹火, 这两天崩崩也是自学了一下 ts. 并且配置了一个简单的基于 Dva+React+Typescript+Tslint 的环境, 由于其他的百度教程都是 17 年或者更早, 很多已经过时了, 所以想想还是分享经验给自学的friends!
第一步
安装 typescript (推荐使用全局安装)
npm install -g typescript
第二步
安装 dva-cli(使用全局安装)
npm install -g dva-cli
第三步
-
. 进入你自己的项目目录
cd d:/code/4-Dva+React\1-dva+react_firstday
Salin selepas log masuk
-
. 使用 dva-cli 创建项目, 创建好的项目目录如下:
dva new 01-dva-quickstart
Salin selepas log masuk
-
. 安装 typescript 所需的 react, react-dom 包, 以及 ts-loader 和 tslint
npm install --save-dev @types/react @types/react-dom ts-loader ts-lint
Salin selepas log masuk -
. 配置 tsconfig.json ( ts配置项 )
在项目 根目录 下新建 tsconfig.json(
./tsconfig.json
), 并写入下列必须代码:{ "compilerOptions": { "strictNullChecks": true, "moduleResolution": "node", "allowSyntheticDefaultImports": true, "experimentalDecorators": true, "jsx": "preserve", "noUnusedParameters": true, "noUnusedLocals": true, "target": "es6", "lib": [ "dom", "es7" ] }, "exclude": [ "node_modules", "lib", "es" ] }
Salin selepas log masuk -
. 配置 tslint.json ( tslint规范 )
在项目 根目录 下新建 tslint.json(
./tslint.json
), 写入下列必须代码:
(ps:下面的 rules 配置项, 可以自行添加)
{ "extends": [ "tslint:latest", "tslint-react" ], "linterOptions": { "exclude": [ "node_modules/**/*.ts", "src/**/*.{ts,tsx}" ] }, "rules": { "object-literal-sort-keys": false, "jsx-no-lambda": false, "eofline": false, "no-consecutive-blank-lines": false, "no-var-requires": false, "quotemark": false, "space-within-parents": false, "no-submodule-imports": false, "no-implicit-dependencies": false, "ordered-imports": [ false ], "jsx-boolean-value": false, "no-trailing-whitespace": false, "semicolon": false, "trailing-comma": false, "space-in-parents": false, "typedef-whitespace": [ false ], "whitespace": [ true ], "interface-over-type-literal": true, "no-duplicate-imports": false, "no-namespace": true, "no-internal-module": true } }
. 至此, ts 的相关配置已经全部完成, 接着该测试一下啦?
第四步
1 . 删除 ./src 目录下的所有文件, 不要删文件夹;
2 . 在 ./src/routes 目录下新建 Home.tsx(./src/routes/Home.tsx
)(默认首页);Ps: dva 中 routes 相当于 redux 的 containers(容器组件), 具体相关概念可以参考链接描述 , Home.tsx 的代码如下:
import * as React from 'react'; export interface IAppProps { name?: string; }; const Home: React.SFC<IAppProps> = (props: IAppProps): JSX.Element => { return ( <p> <h1> Hello {props.name ? props.name : "崩崩呢"} </h1> </p> ); }; export default Home;
3 . 在 ./src/routes 目录下新建 News.tsx ( ./src/routes/News.tsx
)(这是二级页面);
import * as React from 'react'; export interface INewsProps { newslist?: Array<{title: string, content: 'string'}>; }; const News: React.SFC<INewsProps> = ( props: INewsProps ): JSX.Element => { const newslist = props.newslist ? props.newslist : [ { title: 'title1', content: 'content1', } ]; return ( <p> <nav> <ol> <li>{newslist[0].title}</li> <li>{newslist[0].content}</li> <li>over</li> </ol> </nav> </p> ); };
4 . 写好了我们的容器组件, 进入到 ./src, 在项目根目录下新建 router.tsx( ./src/router.tsx
), 配置我们的路由!
import * as React from 'react'; import { Router, Route, Switch } from 'dva/router'; import Home from './routes/Home'; // 引入 首页 组件 import News from './routes/News'; // 引入 二级 页面 export default function RouterConfig ({ history }){ // 路由配置 return ( <Router history={history}> <Switch> <Route path="/" exact component={Home} /> <Route path="/news" component={News} /> </Switch> </Router> ); }
5 . 最后一步, 去到 ./src/ 根目录, 新建 index.tsx(./src/index.tsx
), 并写入如下代码!
import dva from 'dva'; import createhistory from 'history/createBrowserHistory'; const app = dva({ history: createhistory(), }); app.router( require('./router').default ); app.start('#root');
Ps: 由于 dva 的默认路由是 Hash 路由, 崩崩有点强迫, 所以在 const app = dva({})
中使用了 H5 的 historyAPI, 比较好看;
6 . 在命令行执行npm start
, 代码没写错的话,应该就能看到这样的主页![]()
7 . 继续在浏览器地址栏中输入 /news, 即可看到跳转到了 news 页面![]()
第五步 (大功告成)
总结: 崩崩只学了 2 天的 ts,所以就迫不及待的将其融入到了 redux+react
的实践中, 期间踩了不少的坑, 发现 redux 其实对 ts 的支持不是很友好, 所以果断地转向了更加轻
量的 dva, 而网上的对 dva+react+ts 的配置少之又少,而且是过时的东西, 所以分享给大家..., 另外代码没有过多的注释, dva 文档链接描述 已经讲得很详细了, 崩崩觉得没必要再说了!要睡觉了, 就码这么多了, 永远热爱前端的崩崩!!
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
Atas ialah kandungan terperinci vscode搭建Typescript+React+Dva的开发环境. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Ya, MySQL boleh dipasang pada Windows 7, dan walaupun Microsoft telah berhenti menyokong Windows 7, MySQL masih serasi dengannya. Walau bagaimanapun, perkara berikut harus diperhatikan semasa proses pemasangan: Muat turun pemasang MySQL untuk Windows. Pilih versi MySQL yang sesuai (komuniti atau perusahaan). Pilih direktori pemasangan yang sesuai dan set aksara semasa proses pemasangan. Tetapkan kata laluan pengguna root dan simpan dengan betul. Sambung ke pangkalan data untuk ujian. Perhatikan isu keserasian dan keselamatan pada Windows 7, dan disyorkan untuk menaik taraf ke sistem operasi yang disokong.

Menyelesaikan masalah Permulaan Photoshop Perlahan memerlukan pendekatan berbilang arah, termasuk: menaik taraf perkakasan (memori, pemacu keadaan pepejal, CPU); menyahpasang pemalam yang sudah lapuk atau tidak serasi; membersihkan sampah sistem dan program latar belakang yang berlebihan dengan kerap; menutup program yang tidak relevan dengan berhati -hati; Mengelakkan membuka sejumlah besar fail semasa permulaan.

Cara melaksanakan Windows-like dalam pembangunan depan ...

Bagaimana untuk membezakan antara tab penutup dan menutup seluruh penyemak imbas menggunakan JavaScript pada penyemak imbas anda? Semasa penggunaan harian penyemak imbas, pengguna boleh ...

Tarik panduan menegak di Photoshop: Membolehkan pandangan penguasa (Lihat & gt; penguasa). Tuding tetikus di atas pinggir menegak penguasa, dan kemudian kursor menjadi garis menegak dengan anak panah berganda dan tahan dan seret tetikus untuk mengeluarkan garisan rujukan. Klik Padam dengan menyeret panduan, atau melayang ke salib.

Penyelesaian kepada ralat pemasangan MySQL adalah: 1. Berhati -hati memeriksa persekitaran sistem untuk memastikan keperluan perpustakaan ketergantungan MySQL dipenuhi. Sistem operasi dan keperluan versi yang berbeza adalah berbeza; 2. Berhati -hati membaca mesej ralat dan mengambil langkah -langkah yang sepadan mengikut arahan (seperti fail perpustakaan yang hilang atau kebenaran yang tidak mencukupi), seperti memasang kebergantungan atau menggunakan arahan sudo; 3 Jika perlu, cuba pasang kod sumber dan periksa dengan teliti log kompilasi, tetapi ini memerlukan pengetahuan dan pengalaman Linux tertentu. Kunci untuk menyelesaikan masalah akhirnya adalah dengan teliti memeriksa persekitaran sistem dan maklumat ralat, dan merujuk kepada dokumen rasmi.

Keistimewaan kesimpulan jenis jenis: hasil yang sama dari empat jenis yang ditakrifkan dan masalah jenis bersama dalam jenis bersyarat. Artikel ini akan meneroka TypeScript ...

Jenis DateTime yang mewakili SQLite dalam antara muka Typescript apabila menggunakan antara muka Definisi Typescript untuk memetakan jenis DateTime dalam pangkalan data SQLite, pilih kelas yang sesuai ...
