misix
misix
misix
Joined 3 years ago
DecJanFebMarAprMayJuneJulyAugSeptOctNov
misix
·

纯粹的 html、js、css 构建网站的传统做法已经被 template/jsx 替代了,jQuery 时代的做法已经不适合使用了,虽然现在 jQuery 现存市场还很大(from):

不过新项目的采用 jQuery 已经很少了(from):

Vue 和 React 最大的区别就是 template/jsx,proxy/immutable。

template/jsx 本质上都是语法糖,template 的语法糖是 v-ifv-for 这些,而且 Vue 中文文档写的好,对于新手入门友好,但是由于 IDE 的支持、ts 支持问题会导致维护困难,jsx 也是 js 上加的语法糖,但只有一个,无需太多记忆,学起来就像学 js 语法,比模板语法自由许多,react 相比 vue 有许多优点:

  • 完整的 js 功能用来构建视图 UI(Vue template 中无法注入一些复杂逻辑)
  • 直接引用当前 js 作用域变量(jsx 中可以直接使用 import 进来的东西,vue 不行)
  • typescript 支持和 IDE 支持好,开发友好,重构方便(这个说句良心话,ms 当初搞 ts 是不支持 jsx 的,但是社区呼声太大才支持的 tsx,维护也是 ms,vue 就没那么幸运了,只能尤大拉个小团队维护 template 的 ts 支持,所以很难做的完善)
  • 调试方便:jsx 调试可以直接定位到某一行代码错误,Vue 不行,只能自己摸头找找 bug。

性能 Vue 确实好一点,但是这一点用户不会有明显感知(差距太小),反而可维护性和重构升级是一个项目考虑的关键,毕竟大家都不希望以后接手的项目是一坨屎山 joy

misix
·

misix
·

ts 的 void 类型指的是“不关心返回值是什么”的意思,可以看看官方文档:return-type-void。这个关键字是为了一些场景下编码方便(更加简洁),比如官方的例子:

void is not the same as undefined.

const src = [1, 2, 3];
const dst = [0];

src.forEach((el) => dst.push(el));

如果申明不是 void 类型,你只能写成:

const src = [1, 2, 3];
const dst = [0];

src.forEach((el) => { return dst.push(el); });

是不是麻烦很多,如果要明确函数无返回类型,应该用 undefined

interface Props {
    onClick?: () => undefined;
}
misix
·

安利一个 npm 包:copy-to-clipboard,可以实现常见复制到黏贴板需求,而且做好了兼容设计,Weekly Downloads:3,646,290

misix
·

mark

misix
·
misix
·

正确使用还是没啥问题的,可以看下:Security of JSON Web Tokens (JWT),这篇文章,里面提到几种攻击方式,一些安全措施做完善,没问题的。