在 React 16 中从 setState 返回 null 的妙用

在 React 16 中为了防止不必要的 DOM 更新,允许你决定是否让 `.setState` 更来新状态。在调用 `.setState` 时返回 `null` 将不再触发更新。我们将通过重构一个 mocktail (一种不含酒精的鸡尾酒)选择程序来探索它是如何工作的,即使我们选择相同的 mocktail 两次也会更新。

阅读全文



通过动图学习 CSS Flex

如果一张图片胜过千言万语 —— 那么动画呢? Flex 无法通过文字或静态图像有效地完全解释。为了巩固你对flex的了解,我制作了这些动画演示。

阅读全文



用CSS Grid Shepherd 技术对数据进行排序

最近关注了太多的工具,现在最好从所有 React 和 npm-install-everything 的文章中休息一下,来看看一些纯粹的 DOM 和 Web API 功能,它们可以在不依赖任何第三方库的前提下在现代浏览器中运行。这篇文章将讲解八个鲜为人知的 DOM 功能,这些功能具有强大的浏览器支持。为了帮助你理解每个功能的工作原理,我将通过大量的测试代码为你提供演示。

阅读全文



8 个你不知道的 DOM 功能

最近关注了太多的工具,现在最好从所有 React 和 npm-install-everything 的文章中休息一下,来看看一些纯粹的 DOM 和 Web API 功能,它们可以在不依赖任何第三方库的前提下在现代浏览器中运行。这篇文章将讲解八个鲜为人知的 DOM 功能,这些功能具有强大的浏览器支持。为了帮助你理解每个功能的工作原理,我将通过大量的测试代码为你提供演示。

阅读全文



使用 apiDoc 为你的 Node.js API 生成文档

当你为其他开发人员(前端,桌面,移动等)开发 API 时,需要生成一份风格良好的文档,以便他们知道可以使用的内容和方式,这非常重要。为此,在Node.js项目中,我一直在使用 apiDoc,因为它能够从源代码中的注释生成HTML文档。

阅读全文



为什么要用Node.js

JavaScript 的日益发展带来了很多变化,当今的 Web 开发面貌已经变得截然不同。在几年前是很难想象在服务器上运行 JavaScript 的。在深入研究Node.js之前,你可能想了解使用跨栈的 JavaScript 有什么好处,它统一了语言和数据格式(JSON),允许你以最佳的方式重用开发人员资源。将 Node.js 合并到技术栈中是一个关键优势。

阅读全文



使用 TypeScript 和依赖注入实现一个聊天机器人

类型和可测试代码是避免错误的两种最有效方法,尤其是代码随会时间而变化。我们可以分别通过利用 TypeScript 和依赖注入(DI)将这两种技术应用于JavaScript开发。在本 TypeScript 教程中,除编译以外,我们不会直接介绍 TypeScript 的基础知识。相反,我们将会演示 TypeScript 最佳实践,因为我们将介绍如何从头开始制作 Discord bot、连接测试和 DI,以及创建示例服务。

阅读全文



微信公众号

    前端先锋
    请扫码关注微信公众号:
    前端先锋

最近文章

福利派送

分类

标签

5g angular api apidoc array assemblyscript async await babel big-o bootstrapvue c c++ cache-api callback chrome chrome扩展 chromium cluster commonjs console.log cookie cps cpu css css-flex css框架 csv curl deno devops di dom ecmascript edge embed enzyme es es10 es2018 es2019 es2020 es6 es7 eslint es模块 etag excel filter flexbox flutter flutter-web frames futures git github global globalthis golang graphql grid h264 h265 ha hack headless-chrome high-availability hooks html http http2 iframe indexeddb javascript jest jira jquery json k8s kotlin kubernetes lazy lazy-loading lighthouse linux lock-file lodash logger map minikube mock mongodb mongoose mvc n-node-version-manager new node.js npm null nvm object optional-chaining package package-lock.json package.json pdf prettier promise promises puppeteer pwa react react-context-api react-devtools react-native react.js ref router selenium self serverless service-workers shadow-dom snapshot spyon sql.js sqlite stream suspense svelte svg symbol tdd this tpac typescript undefined v8 v8-lite v8引擎 void vue vue-cli vue.js vue3 vugu w3c web web-api web-share-api web-storage webassembly webbluetooth websockets webvr window winston 中间件 事件循环 事件驱动 二叉搜索树 二叉树 优化 作用域 依赖注入 全栈 全栈工程师 全栈开发工程师 共享可变状态 前端 前端框架 动态效果库 单元测试 可选链 可重用组件 后端 哈希 回调函数 国际化 多核 多线程 媒体查询 安全 对象拷贝 小技巧 小游戏 开源 开源项目 异步函数 微服务 快照测试 性能 性能优化 惰性加载 手册 执行上下文 技巧 持续传递风格 排序 插入排序 操作系统 数据可视化 数据结构 数组 无渲染插槽 无状态组件 日历 日历插件 日志 时间复杂度 框架 模块 正则表达式 流操作 浅拷贝 测试 浏览器 深拷贝 深色模式 渐进式 游戏 游戏引擎 源代码 状态机 环境变量 移动端 程序员 算法 类型 粘性定位 线程 组件 编码 编码风格 编程 网络配置 聊天机器人 自动化 蓝牙 虚拟现实 表单验证 视图引擎 视频格式 解构 语法 调用栈 跨框架组件 软件开发 闭包 集群 面试 面试题 页面加载 项目 领域驱动设计 高可用性 高阶函数

友情链接

其它