Skip to content

前端技术双周刊 2023-04-08:Chrome 支持 CSS 嵌套语法 #7

@olivewind

Description

@olivewind

项目地址olivewind/weekly

微信公众号依赖注入

发布时间:2023.04.08

本周内容:资讯x3、开源x8、文章x4、产品*3


行业资讯

Chrome 112 支持 CSS 嵌套语法

近期 Chrome 团队发布 112 版本的功能清单,其中最值得一提的是,从该版本开始支持 CSS 嵌套语法,随着原生 CSS 语法的不断强大,也许很快我们就可以丢弃 Less、Sass 等扩展工具。

// 112 版本之前
.nesting {
  color: hotpink;
}

.nesting > .is {
  color: rebeccapurple;
}

.nesting > .is > .awesome {
  color: deeppink;
}

// 112 版本开始
.nesting {
  color: hotpink;

  > .is {
    color: rebeccapurple;

    > .awesome {
      color: deeppink;
    }
  }
}

第 95 届 TC39 会议的更新

Stage 3:

  • 异步显式资源管理:解决软件开发中有关各种资源(内存、I/O 等)的生命周期和管理的常见模式
  • import attribute:Import Assertions 重新进入 Stage-3。在导入 es module 时支持选项,例如 JSON 模块
    import json from "./foo.json" with { type: "json" };

Stage 2:

  • Async Context:提议是提供一种机制,以符合人体工程学的方式跟踪 JavaScript 中的异步上下文
  • Float16Array:TypedArrays、DataView、Math.f16round 上的 Float16
  • Iterator.range : ECMAScript 添加一个内置的建议Iterator.range()

Stage 1:

React Labs:我们一直在做的事情(英文)

React 官方团队近期发布了团队的工作事项,主要包括 React Server Components、Asset Loading、Document Metadata、优化编译器、离屏渲染等方向的一些工作。最值得关注的更新来自 React Forget 的进展,这是一个优化编译器,其目标是能够使用已有的 JavaScript 和 React 心智模型构建完全反应式系统,编译器会处理最棘手的部分。

开源项目

FormidableLabs/react-live

React Live 是一个可以实时编辑和预览 React 组件的库,该库采用模块化结构,可让您自由设计和组合其组件。

dutiyesh/chrome-extension-cli(1.7k star)

该项目可用于快速初始化一个完整的 Chorme 插件项目,支持 TypeScipt 和多种模板。

apify/crawleeh(21k star)

Crawlee 是一个用于 Node.js 的网络爬取和浏览器自动化库,可帮助您快速地构建可靠的爬虫。

import { PlaywrightCrawler, Dataset } from 'crawlee';

// PlaywrightCrawler crawls the web using a headless
// browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
    // Use the requestHandler to process each of the crawled pages.
    async requestHandler({ request, page, enqueueLinks, log }) {
        const title = await page.title();
        log.info(`Title of ${request.loadedUrl} is '${title}'`);

        // Save results as JSON to ./storage/datasets/default
        await Dataset.pushData({ title, url: request.loadedUrl });

        // Extract links from the current page
        // and add them to the crawling queue.
        await enqueueLinks();
    },
    // Uncomment this option to see the browser window.
    // headless: false,
});

// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);

refinedev/refine(9.3k star)

refine 是一个 React 开发框架,用于快速开发 Web 应用程序,它消除了 CRUD 操作所需的模板代码,并为身份验证、访问控制、路由、网络、状态管理和 i18n 等关键部分提供行业标准解决方案。

sindresorhus/np(7.1k star)

np 可以作为 npm publish 命令的完全代替,其提供了交互式 UI、分支检查、代码提交检查、运行测试、错误回滚、版本生成等大量实用特性。

petyosi/react-virtuoso(3.6k star)

号称最强大的 React 虚拟列表/表格组件,主要有以下特性:

  1. 支持可变高度的 item
  2. 支持响应式网格布局
  3. 支持使用粘性标题进行分组
  4. 支持页眉和页脚

splitbee/react-notion(2.6k star)

react-notion 是一个用于渲染 Notion 页面的 React 组件,其渲染结果和 Notion 几乎相同,你可以用它轻松实现一个博客,文档或个人站点。

NotionX/react-notion-x(3.5k star)

如果上一个 react-notion 项目无法满足你的需求,那么你可以试试 react-notion-x,这是一个生产级的 Notion 页面渲染方案,笔者的博客站(liguo.run)正是基于该项目构建,基于此我可以在 Notion 里直接发布我的文章,这极大降低了站点维护的成本。

优质文章

系列:100 天学习现代 CSS(英文)

CSS 发展至今已经非常成熟和先进,也许你每天都在使用它,但是可能有些特性已经发布很久了你却还未有过了解,比如 color-mix():has()@property::part 等。通过这一系列文章了解下 CSS 近些年更新的特性,强烈建议你泡上一杯咖啡静下心完整阅读完该文章,一定会有非常多收获 🎉

重新思考 React 最佳实践(英文)

多年前,React 重新思考和定义客户端 SPA 领域的最佳实践,如今 React 已被大规模应用,同时也难以避免遭受各种“批评”和“怀疑”。React 18 与 React Server Components (RSC) 的发布标记着其定位的转变,这篇文章将尝试理解该演变过程。

2023 React 调试指南(英文)

想要构建高质量的 Web 应用程序,无法跳过调试阶段,是否熟练掌握调试技巧也是衡量一个 Web 工程师的重要手段。本文章将介绍 React 调试的来龙去脉,了解常见的 React 错误及其调试工具和方式。虽然该文章以 React 作为承载,但大部分工具和方法适用于任何 JavaScript 应用。

Node.js CLI 相关工具库概况(应用)

当我们需要使用 Node.js 构建一个 CLI 时,面临的第一个问题就是工具选型,社区有大量的工具库可供选择,但很多都相当陈旧。有些已经停滞不前,有些已经被他们的维护者抛弃,还有很多没有跟上现代开发实践。这篇文章旨在对最受欢迎的工具包进行分类,并重点介绍其中的一些软件包及其当前的开发状态。

有趣产品

raycast

Raycast 是一个速度极快、可扩展极强、颜值清新的启动器,可以用于代替 Mac 自带的 Spotlight 以及众所周知的 Alfred,最关键的是 Raycast 对个人用户免费。一旦你开始使用它,你就再也无法离开它。

pageblox

Web 应用交付时通常会有一个环节叫“设计还原度走查”,常规的走查流程是设计师 走查->截图->汇总->修改->同步->确认,如果有问题就需要重复这个过程,这是一个非常耗时且容易出错的过程,如果设计师可以直接在浏览器里的真实页面上和 figma 的标注评论一样进行走查,那团队效率将得到有效提升,pageblox 便是解决此类问题的一个产品,目前该产品还在 beta 阶段,但我已经对它的正式推出迫不及待。

codux

日常前端开发通常会遇到两类业务组件复用的问题:

  1. 同一仓库下:当可复用组件较多且无法清晰从命名推断出每个组件的“真实面貌”时,开发者通常没有耐心尝试渲染它验证是否满足需求,而是选择再造轮子
  2. 不同仓库下:复用流程繁琐,不管使用 npm、模块联邦还是微前端都对文档管理、版本管理、协作流程有较大的挑战

如果可以在已有项目里直接开一个目录维护通用组件并可以清晰看到每个组件的渲染结果就可以有限缓解上述问题,codux 便是解决此类问题的一个实现完善的可视化 React IDE。其最大优点是可以和现有系统进行集成,不需要对原有系统代码做任何改造,并且对 TypeScript、Git、Sass 等工具有开箱即用的支持。coduxStorybook 有部分类似的地方,不过 codux 更专注于本地 DX。值得一提的是,codux 背后的公司是大名鼎鼎的无代码建站平台 Wix

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions