安装依赖
1 | yarn add react-i18next i18next i18next-browser-languagedetector |
配置多语言JSON
1 | // en-us.json |
定义i18n.tsx
1 | import LanguageDetector from 'i18next-browser-languagedetector'; |
主文件引用
1 | import React from 'react' |
使用方式
1 | import React from 'react' |
1 | yarn add react-i18next i18next i18next-browser-languagedetector |
1 | // en-us.json |
1 | import LanguageDetector from 'i18next-browser-languagedetector'; |
1 | import React from 'react' |
1 | import React from 'react' |
一分钟安装nodejs
,版本(>=10.13.0)
1 | npm i -g @nestjs/cli |
1 | # 将创建 project 目录, 安装node模块和一些其他样板文件,并将创建一个 src 目录,目录中包含几个核心文件。 |
1 | // main.ts |
Nest 旨在成为一个与平台无关的框架。 通过平台,可以创建可重用的逻辑部件,开发人员可以利用这些部件来跨越多种不同类型的应用程序。 从技术 上讲,Nest 可以在创建适配器后使用任何 Node HTTP 框架。 有两个支持开箱即用的 HTTP 平台:express 和 fastify。 您可以选择最适合您 需求的产品。
平台 | 描述 |
---|---|
express | Express 是一个众所周知的 node.js 简约 Web 框架。 这是一个经过实战考验,适用于生产的库,拥有大量社区资源。 默认情况下使 |
用 @nestjs/platform-express
包。 许多用户都可以使用 Express ,并且无需采取任何操作即可启用它。|
|fastify|Fastify 是一个高性能,低开销的框架,专注于提供最高的效率和速度。 在这里阅读如何使用它。|
无论使用哪种平台,它都会暴露自己的 API。 它们分别是 NestExpressApplication 和 NestFastifyApplication。
将类型传递给 NestFactory.create() 函数时,如下例所示,app 对象将具有专用于该特定平台的函数。 但是,请注意,除非您确实要访问底层平 台API,否则无需指定类型。
1 | const app = await NestFactory.create<NestExpressApplication>(AppModule); |
1 | npm run start |
axios 是 Vue 官方推荐的一个 HTTP 库,用 axios 官方简介来介绍它,就是:
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
作为一个优秀的 HTTP 库,axios 打败了曾经由 Vue 官方团队维护的 vue-resource,获得了 Vue 作者尤小右的大力推荐,成为了 Vue 项目中 HTTP 库的最佳选择。
虽然,axios 是个优秀的 HTTP 库,但是,直接在项目中使用并不是那么方便,所以,我们需要对其进行一定程度上的配置封装,减少重复代码,方便调用。下面,我们就来聊聊 Vue 中 axios 的封装。
TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。
TypeScript | JavaScript |
---|---|
JavaScript 的超集用于解决大型项目的代码复杂性 | 一种脚本语言,用于创建动态网页 |
可以在编译期间发现并纠正错误 | 作为一种解释型语言,只能在运行时发现错误 |
强类型,支持静态和动态类型 | 弱类型,没有静态类型选项 |
最终被编译成 JavaScript 代码,使浏览器可以理解 | 可以直接在浏览器中使用 |
支持模块、泛型和接口 | 不支持模块,泛型或接口 |
支持 ES3,ES4,ES5 和 ES6 等 | 不支持编译其他 ES3,ES4,ES5 或 ES6 功能 |
社区的支持仍在增长,而且还不是很大 | 大量的社区支持以及大量文档和解决问题的支持 |
1 | npm install -g typescript |
1 | tsc helloworld.ts |
先简单了解下什么是 CSS Modules
A CSS Module is a CSS file in which all class names and animation names are scoped locally by default
简单点说 CSS Module 是具有局部作用域的 css 文件。既然提到了局部作用域,那么肯定有全局作用域,在 create-react-app 中,我们引入 css 文件通常为以下形式:
1 | /* index.css */ |
1 | /* index.tsx */ |
interface是接口,type是类型,本身就是两个概念。只是碰巧表现上比较相似。希望定义一个变量类型,就用type,如果希望是能够继承并约束的,就 用interface。如果你不知道该用哪个,说明你只是想定义一个类型而非接口,所以应该用type。
在 TypeScript
中,interface
和 type
主要用于类型的声明,它们的相同点以及区别如下:
它来了,它来了,16.8版本hooks
成功加入(^▽^)
你还在为该使用无状态组件(Function)还是有状态组件(Class)而烦恼吗? —— 拥有了hooks,你再也不需要写Class了,你的所有组件都将是Function。
你还在为搞不清使用哪个生命周期钩子函数而日夜难眠吗? —— 拥有了Hooks,生命周期钩子函数可以先丢一边了。
你在还在为组件中的this指向而晕头转向吗? —— 既然Class都丢掉了,哪里还有this?你的人生第一次不再需要面对this。
生活中,我们经常用到的是以十进制为单位,进位是满 10 进 1,而计算机是用二进制,那么就是满 2 进 1 喽,为什么采用二进制呢?简单说下,Ta的由来其实是根据电路的开关闭合,电路只有 0 和 1,具体的详情这里不多做解释了,可以自行百科^_^。javascript 采用有符号 32 位的 2 进制,可表示 4294967295 个整数(含正负),范围是 -2147483648(2 的 32 次方) ~ 2147483647。
在计算机中规定最高位是符号位,0 为正,1 为负。正数表示是原码,负数是原码的补码。
除去符号位,其他 32 位都为正。
例:00000000000000000000000000001010 原码 00000000000000000000000000001010。
所谓反码,除符号位外,其他位 0 变 1,1 变 0。 例:1010 反码 1101
所谓补码,就像是小学学过的 10 进制补数,举个例子就很好理解,3 的补数是多少?是 7。4 的补数是 6,补数就是 10 减去这个数。在二进制的补码就是相加等于 0,互为相反数。
二叉树: 最多只有两个子节点
二叉查找树: 是一种特殊的二叉树,能有效地提高查找效率
DLR–前序遍历(根在前,从左往右,一棵树的根永远在左子树前面,左子树又永远在右子树前面 )
LDR–中序遍历(根在中,从左往右,一棵树的左子树永远在根前面,根永远在右子树前面)
LRD–后序遍历(根在后,从左往右,一棵树的左子树永远在右子树前面,右子树永远在根前面)
1 | !function(e, t, a) { |