![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端
文章平均质量分 61
Hull Qin
我做了一些联机桌游网页:2人联机的五子棋、2-4人联机的斗地主、支持2-10人联机的UNO。无需下载,点开即玩!叫上朋友,即刻开局!不看广告,不做任务,享受「纯粹」的游戏!
展开
-
火爆全网的 Evil.js 源码解读
什么?黑心996公司要让你提桶跑路了?想在离开前给你们的项目留点小礼物?偷偷地把本项目引入你们的项目吧,你们的项目会有但不仅限于如下的神奇效果:当数组长度可以被7整除时,Array.includes永远返回false……原创 2022-08-19 11:58:00 · 11906 阅读 · 3 评论 -
使用service worker缓存CDN上的文件,遇到跨域问题
问题描述我在用service worker缓存我的静态资源文件,每次直接加载时,可以读取静态资源。但是service worker会报这个错。解决方案CDN返回要加跨域头。请求静态资源时,要带上origin。具体做法:每个静态资源标签加 crossorigin="anonymous"。解释原因如果index.html中用了<script>或<link>标签,没带crossorigin="anonymous",则发静态资源请求时,request header不会带o原创 2022-03-17 23:02:03 · 3325 阅读 · 0 评论 -
编译js代码后,每次出现Microsoft Corporation的MIT协议
今天使用rollup开发npm包,每次打包后,都会出现这段License:/*! *****************************************************************************Copyright (c) Microsoft Corporation.Permission to use, copy, modify, and/or distribute this software for anypurpose with or without f原创 2022-03-02 01:45:17 · 1722 阅读 · 0 评论 -
React 开发一个自定义输入控件
通常,Form.Item会给它的children注入两个属性:value和onChange,实现“受控模式”。我们开发输入控件时,需要兼顾受控模式和非受控模式。具体方案如下:const MyInput = (props) => { // 重命名下prop传入的 value和onChange,减少歧义 const {value: propValue, onChange: propOnChange, defaultValue} = props; // 判断初始时有无传入val原创 2021-06-18 23:07:06 · 1842 阅读 · 1 评论 -
前端【性能优化】与【代码可读性】的「权衡」
曾经写React时,追求极致的效率,各种用useMemo memo等等,后来才知道什么最重要——代码可读性。React改变了前端开发的方式,由命令式编程(jQuery操纵Dom)转化到了声明式编程(根据data声明UI),这极大程度提高了开发效率,且它内部做了很多性能优化的手段。(当然用jQuery也可以声明式编程,每次data改变就重新渲染UI,但会有性能问题,若自己解决又会导致开发效率降低)。我很佩服Facebook团队,因为React兼顾了「性能优化」和「开发效率」。开发效率:在前端开发中,.原创 2021-04-18 03:44:27 · 1964 阅读 · 1 评论 -
JS 面试题 for循环中的let定义 闭包陷阱
猜一下执行结果先const arr = [];for (let u = 0; u < 10; u++) { console.log(u); // 0 2 4 6 8 u++; setTimeout(() => console.log('setTimeout', u), 0); arr.push(() => console.log(u));}console.log(arr[1]());当初因为我考虑到闭包,所以,我想错了。真实输出结果:02原创 2021-04-17 22:57:10 · 1872 阅读 · 0 评论 -
React Server Components 介绍 亮点
2020年12月21日,圣诞节前夕,React团队发了关于React Server Components的博客和RFC。一方面是公布他们关于React的进展,另一方面是希望吸取业界的反馈。前端简史【静态】在最早的时候是根本没有前端或者后端的概念的。当时就是用 Dreamweaver 写 html 静态页面,然后部署到一台电脑的 IIS (Internet Information Services) 上。当请求这个页面时,返回这个 html 文件。【模版】再后面一点,服务端变得复杂了一些,html.原创 2021-01-07 17:19:37 · 4106 阅读 · 8 评论 -
【React】你不了解但非常有用的API: React.Children 与 React.cloneElement
React.ChildrenReact.Children 提供了用于处理 props.children 不透明数据结构的实用方法。React.Children.mapReact.Children.map(children, function[(thisArg)])在 children 里的每个直接子节点上调用一个函数。如果 children 是一个数组,它将被遍历并为数组中的每个子节点调用该函数。如果子节点为 null 或是 undefined,则此方法将返回 null 或是 undefined,而原创 2020-12-22 02:00:23 · 2915 阅读 · 0 评论 -
【TSDX】在TSDX中引用css样式文件
如何在TSDX中引用css样式文件?TSDX默认不支持引入css,遇到 import xxx.css 会提示:✖ Failed to compileError: Unexpected token (Note that you need plugins to import files that are not JavaScript)解决方法在项目根目录,新建tsdx.config.js:const postcss = require('rollup-plugin-postcss');mo.原创 2020-12-04 02:26:23 · 4283 阅读 · 5 评论 -
在 TSDX 中使用 lodash
关于TSDX的介绍,参考 https://blog.csdn.net/kd_2015/article/details/110409238在TSDX中使用lodash是很爽的,因为它会帮你按需引入,这让你的包打包后体积不会太臃肿。我们首先需要安装lodash依赖和lodash-es依赖(其中lodash-es是基于ES modules的,为了实现按需引入):npm install lodash lodash-es # or yarn add lodash lodash-es安装lodash的类型.原创 2020-12-01 23:29:44 · 2361 阅读 · 0 评论 -
一文教你: 快速上手 开发React组件 npm包 (使用TSDX)
如何开发一个NPM包供其它项目使用?我们在开发React项目时,有各种脚手架供我们选择(Create React App、Umi、NextJS等),他们默认配置好了Webpack等,极大提高了开发效率。那么如何开发NPM包呢?有类似的脚手架吗?我推荐TSDX理由如下:默认支持CommonJS、UMD、ES Module打包方式。(要开发通用的NPM包,这些的支持是必要的,不然你还得自己搞)自带开发环境、编译脚本。 开发NPM包你必须要解决的一个问题:开发时有地方调试,发布时再build &.原创 2020-11-30 23:31:29 · 5780 阅读 · 3 评论 -
React Redux 组件更新/渲染 原理 connect之mapStateToProps 看这篇就够了!比中文文档好用!
Redux中,state作为单一的数据源,众所周知,每次更新state都要通过return { ...state, others }来返回一个新的state,但是它是怎么来判断一些组件到底要不要re-render(刷新、重渲染)呢?尤其是当state层次很深的时候,会有效率问题、该刷新时不刷新的问题吗?其实关键在于这个connect()函数的第一个参数:mapStateToProps。下面举...原创 2020-04-02 22:07:15 · 4620 阅读 · 5 评论