摘要: 关于 mobX 在 react 16.8.0 以上的用法 以下例子均取自官网文档 一般用法: import { observer, useLocalStore } from 'mobx-react'; const Hooks = observer(() => { const todo = useLo 阅读全文
posted @ 2020-01-01 17:52 Grewer 阅读(6629) 评论(0) 推荐(2) 编辑
摘要: 说实话,作为前端来说,单元测试,并不是一种必须的技能,但是确实一种可以让你加法的技能 之前我一个库添加了单元测试,加完之后感悟颇深,所以写下这篇文章来记录 环境搭建 一般来说,普通的库,如果没有添加 babel 的话,在 test 里面,也是不能使用 es6 的语法的 总结来说 test 文件的兼容 阅读全文
posted @ 2019-12-31 17:11 Grewer 阅读(1460) 评论(0) 推荐(0) 编辑
摘要: 针对 react hooks 的新版本解决方案 一.redux维持原方案 若想要无缝使用原来的 redux,和其配套的中间件 promise,thunk,saga 等等的话 可以使用 github 链接 "redux react hook" 一个简单的使用例子: 使用方法和以前一致 二.使用 use 阅读全文
posted @ 2019-06-05 17:31 Grewer 阅读(2850) 评论(0) 推荐(0) 编辑
摘要: 本文所有东西尽可在 typescript 官网文档寻找,但是深浅不一 高级类型 lib 库中的五个高级类型 以下所有例子皆以 person 为例 Partial 源码: 实例: Required 源码: 实例: Readonly 源码: 实例: Pick 源码: 实例: Record 源码: 实例: 阅读全文
posted @ 2019-06-04 15:16 Grewer 阅读(11395) 评论(0) 推荐(0) 编辑
摘要: useCallback,useMemo 因为这两个 api 的作用是一样的,所以我放在一起讲; 语法: 区别在于第一个参数,还有参数的传递,另外 useCallback 中 DependencyList 是一个必须值 这两个 api 的作用基本就是缓存数据/方法 使用过 react 的人都知道,在组 阅读全文
posted @ 2019-04-14 21:24 Grewer 阅读(939) 评论(0) 推荐(0) 编辑
摘要: useState 经典案例: 此例子中, 是最新的 hooks api; 语法: 其中 state 是他的值, setState 是用来设置值的函数, initialState 是初始值 useState initialState 该初始值可以接受任何参数,但是记得当他接受为一个函数时,就变成了 ( 阅读全文
posted @ 2019-04-07 15:22 Grewer 阅读(14028) 评论(0) 推荐(3) 编辑
摘要: 首先假设 基础的环境是有 creat react app 所创建的 即所有基础的loader,插件的 cache 都已经缓存了 在这种情况下想加速,真是很难 不过,有一个插件是可以观察 各个模块所花的时间的: ,他给了我们一个观察点 有很多文章都会说 happypack 有能加速的效果 但是经过我的 阅读全文
posted @ 2019-02-24 23:12 Grewer 阅读(567) 评论(0) 推荐(0) 编辑
摘要: react 中状态的六个存储位置 1. state 我想大家都知道这个地方,而且在使用 setState 时会触发组件的更新 2. class prop 将值存在 class 的对象中,如: 这个 class 中的 count 便是这种存储方式; 优点: 改变值时不会触发组件的更新,当组件销毁后,再 阅读全文
posted @ 2018-12-11 16:59 Grewer 阅读(1803) 评论(0) 推荐(0) 编辑
摘要: 之前项目多,事情忙,一直没时间写博客,现在空闲下来了,总结一下 之前讲过了关于 build 压缩文件的方法,有兴趣的可以看下: 点击查看 现在讲讲一个页面的首屏加载速度该如何提升 提前说明 需要 webpack bundle analyzer 插件来进行 build 文件的分析 异步文件和必须文件 阅读全文
posted @ 2018-10-30 17:40 Grewer 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 几个月前看到了这篇文章 https://philipwalton.com/articles/deploying es2015 code in production today/,给了我很大的启发,本来是想使用 vue 来当实验对象的,但是在 vue cli3 的测试版中就有了这个内容,所以这次使用 阅读全文
posted @ 2018-08-22 15:56 Grewer 阅读(12810) 评论(1) 推荐(0) 编辑
摘要: 使用 pug 的原因: 使得 HTML 写起了来更加清晰和快捷 用法: Vue 的用法没有变化: 要注意的一点是: 标签后面如果有属性(括号内的) 他和括号之间不要加空格,加了空格就会被当成字符串解析 vue cli 2+ 配置: 下载包: 在build/webpack.base.conf.js 的 阅读全文
posted @ 2018-08-05 22:11 Grewer 阅读(2185) 评论(0) 推荐(0) 编辑
摘要: 时至今日(2018 7 11),vue cli 任然未稳定支持至webpack4,所以我自己也来创建一个 vue 初始化模板 不过大致的原因我也能猜到,因为很多插件仍然是一个不稳定的点,比如我在创建中也遇到了,至今未有解决的方案 webpack 4 优点: 总结来说就是 加快了 dev 模式下的编译 阅读全文
posted @ 2018-07-11 15:08 Grewer 阅读(858) 评论(0) 推荐(0) 编辑
摘要: 基础配置: 1. 准备一个使用 vue cli 生成的项目 2. 使用 npm 一建安装基础配置 3. 修改配置文件 3.1 文件 bulid/webpack.base.conf.js 3.2 在 src 下新建文件 ,用于识别单文件vue内的ts代码 3.3 修改 main.js 后缀为 main 阅读全文
posted @ 2018-06-16 18:23 Grewer 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 想必很多人都经历过做完一个项目后,再打包发现某些文件非常大,导致页面加载时很慢,这就很影响用户体验了,所以在我经历了一些打包后,讲讲如何有效地缩小包体积,加快页面的首屏渲染 动态 polyfill 相信很多项目都会用到polyfill 那么一整个polyfill 会占据很多的空间,这个时候需要使用动 阅读全文
posted @ 2018-05-13 22:00 Grewer 阅读(8503) 评论(2) 推荐(0) 编辑
摘要: 记录 vue 项目打包的一些事情 首先声明项目都是由 vue cli 生成; vue 项目从 dev 切换到 prod 时有很多地方需要注意; 1. 首先是大家最需要注意的 ajax 切换环节 以前一开始用 Vue 的时候我是在 build 之后,手动修改 ajax 的请求前缀 比如现在我使用的 a 阅读全文
posted @ 2018-04-15 14:55 Grewer 阅读(3598) 评论(0) 推荐(0) 编辑