React+TS 从零开始教程(1)

源码链接:https://pan.quark.cn/s/c6fbc31dcb02

创建项目

直接通过以下命令,我们来创建一个react+ts的项目。

复制代码
npx create-react-app myapp --template typescript

这样就创建好了,然后我们导入vscode. npxnpm里面的一个库,可以让你自动使用项目里面的包,而不用手动去安装。

node_modules自动已经下载好了. 还自动帮你提交了1次.

项目结构

src目录是参与打包的,也是我们真正写代码的地方。

public不参与打包,我们很少会去修改其中的内容。

我们在src中编写的任何文件,最终都会被打包成一个buddle.js,给index.html服务,public里面的图片,字体,资源也一样. package.json : 项目的入口文件 (包含项目依赖,运行脚本等) tsconfig.json: 配置TS (我们暂时不管) 运行项目:npm run start

这个图片是在App.tsx中引入的

我们看到,在react中,引入图片也像是引入组件一样,然后在需要的地方用{}括起来就行了;

安装prettier

先别问prettier是什么,跟着做就行了。

复制代码
npm install --save-dev --save-exact prettier

在package.json中会多出这个配置

再新建一个配置文件

复制代码
echo {}> .prettierrc.json

里面是一个空的{} 再来建一个.prettierignore,类似于.gitignore,是指我们不需要格式化的文件。 里面就写一个build,代表构建的目录不需要格式化。

lint-staged代表那些后缀名的文件需要被格式化,由于我们是ts的项目,所以扩展名加两个:ts,tsx

复制代码
  "lint-staged": {
    "*.{js,css,md,ts,tsx}": "prettier --write"
  }

create-react-app自带eslint

复制代码
"eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },

现在我们说下prettier是干嘛用的吧,他就是帮我们自动格式化的,统一格式化代码,这样就不需要我们一个个文件去格式化了。

我们故意把格式搞乱,然后去提交。

在控制台输入

复制代码
npx prettier --write .

手动格式化成功。

json-server

这个是方便我们mock数据的。

复制代码
 npm i json-server -g

注意,如果你的node版本很低,14左右的样子,用下面这个(MD搞死了~)

复制代码
npm install -g json-server@0.17.3

创建一个db.json

复制代码
{
    "users": []
}

然后启动

复制代码
json-server db.json --watch

监听在3000端口,打开postman,访问一下。

这个代表查询users的列表数据,返回空,符合预期。 然后把方法改成post,添加一个数据。

post代表提交数据,返回了一个新的user,并且,我们的db.json也改了。

users代表资源,如果现在要改变id为1的数据,将age加1岁,就这样

以上的json-server是全局安装的,现在要继承到项目里面。

复制代码
npm i --save json-server@0.17.3

然后,在项目里面加一个文件夹 json_server_mock 并且将刚才的db.json移动进去,这个目录用__开头,代表跟项目本身没啥关系,只是辅助。

最后,来到package.json,添加一个脚本

复制代码
"json-server": "json-server __json_server_mock__/db.json --watch"

以后,我们就可以直接通过npm run json-server来启动json-server了。

相关推荐
砚凝霜10 分钟前
软考网络工程师|案例分析:Eth‑Trunk 链路聚合、iStack 堆叠、CSS 集群核心考点总结
前端·css·网络
珐恩AI-人工智能32 分钟前
大模型意图召回偏差分析:GEO如何解决“有收录却不触发问答曝光”的难题
大数据·前端·人工智能·html·流量运营·geo优化
程序员老赵1 小时前
Docker 部署禅道 ZenTao:轻松搭建研发项目管理平台
前端·后端·github
前端小卡拉1 小时前
用了大半年 AI 编程工具,我才搞懂 Skill 到底是什么
前端·javascript
hunterandroid1 小时前
[鸿蒙从零到一] HarmonyOS 单元测试与 UI 自动化测试实战:从代码质量到用户体验的全链路保障
前端
郭邯1 小时前
用 Intl.DateTimeFormat 手写一个时区转换器,顺便聊聊我和 AI 结对编程的日常
前端·javascript
阿奇__1 小时前
微前端、iframe与Auth Code技术方案对比
前端
FungLeo1 小时前
React 管理后台实战 · 前端请求层怎么写?401 静默刷新、token 并发竞争、强制改密拦截一次说清
前端·react.js·前端框架
AI砖家2 小时前
React Native 打包体积优化指南:在保证功能正常的前提下把包压到最小
javascript·react native·react.js·打包优化
Vuji2 小时前
Pi 插件解剖|ssh.ts:只用 221 行,让 Agent 直接在远程机器干活
前端·人工智能·agent