
#37 Syntax:Vite Plus 要用一个工具替代你全部的开发工具
3 月 26 日 · 37 分钟

ShopTalk | 整理时间:二零二六年二月
主持人:Chris Coyier & Dave Rupert
本期节目深入探讨了前端开发中的几个重要话题:Lit-HTML 在 Web Components 中的应用、Popover API 的隐式锚点功能、Safari 跨平台测试的困境,以及给 HTML/CSS/JavaScript 初学者的实用建议。两位主持人还分享了网站构建工具的选择经验。
Chris: 最近前端大师博客上有两篇关于 Web Components 的内容,其中一篇关于 Lit-HTML 的部分相当不错。其实很多人不知道,可以在 Lit Element 之外单独使用 Lit-HTML。
Dave: 我从那位开发者那里听说后,就推动他更深入地探讨了一下。我当时觉得这个点很多人都不知道,应该强调一下。
Chris: 是的,Lit-HTML 内部有个鲜为人知的酷功能。它在 HTML 标签模板字面量中也能实现类似效果,会在更新位置留下小标记,通过注释形式存在。
Dave: 它不会像 React 那样需要触发整个模板或上游的逻辑,也不必更新整个组件树。Lit Element 或 Lit HTML 只会更新发生变化的那部分内容。
Chris: 没错,如果你将计数从 2 改为 3,仅更新计数的文本部分。这就是使用库的原因——精准的 DOM 更新功能。
Dave: 我不明白为什么人们不直接接受这种模板字面量的方式,或者用 JSX 模板字面量也行,这样或许就能摆脱编译器的依赖。
Chris: 虽然 Babel 让你能够脱离编译器来使用 React 组件,但 Lit-HTML 这种技术在更广泛的 JavaScript 生态系统中尚未得到充分应用。
Dave: 还记得我之前做的那个 Web 组件吗?一个菜单按钮,使用了弹出层 API。我意识到必须连接两件事:Popover ID 和按钮,还有锚点名称和位置锚点。
Chris: 你总是得为它们分配唯一的值并将两者关联起来,对吧?
Dave: 没错,这真麻烦。但如果它们都放在一个 Web 组件内部,还需要手动去记吗?后来我学到了一个新东西——锚点作用域。如果我在卡片范围内定义锚点,即使页面上有十五个卡片,也不会产生作用域泄漏。
Chris: 有趣,所以不需要为每个菜单设置唯一 ID?
Dave: 不需要!每个地方都可以使用相同的名字,因为你在限制其作用范围。这非常棒。
Chris: 我还学到了一个新知识——隐式目标。用于弹出层时,如果通过锚点定位打开,它内部存在一个隐式锚点,即触发它打开的元素。
Dave: 所以你将其外边距设置为零,并指定一个位置区域,它就会围绕该按钮打开,无需额外操作即可实现定位。
Chris: 完全不需要显式连接,它们默认就是关联的。
Dave: 这意味着不需要在 CSS 里特意创建唯一 ID,比如菜单-19 这种。因为支持 CSS 锚点定位的浏览器中,弹出框已具有隐式锚点。
anchor-scope 可以限定锚点作用范围。这简化了弹出层与触发元素的关联,无需为每个实例设置唯一 ID。Dave: 有个问题来自阿德里安·西蒙斯:苹果是否应该像微软过去为 IE 提供跨平台机器镜像那样,提供用于 Safari 测试的虚拟机?
Chris: 如今在 Linux 或 Windows 上测试 Safari 几乎不可能,BrowserStack 这类工具速度慢且成本高昂。
Dave: 苹果其实有理由——只要下载免费的 Xcode,就能获得 iOS 模拟器,支持的 iOS 版本回溯得相当远。
Chris: 但那只适用于 Mac 用户。如果你是 Linux 用户呢?苹果能给你什么?
Dave: 我不认为会实现,但如果他们能做到提供带旧版 Safari 的 macOS 试用版,让 Linux 用户可以测试,那会很好。
Chris: 问题是旧版 Safari 上某些功能运作得太完美了,用户没有动力升级。如果我们都过于用心地支持五年前的 Safari,等于在鼓励用户继续不升级。
Dave: Safari 的存在是为了支持苹果的生态系统,不像 Chrome 作为在线软件业务,有动力让浏览器在任何设备上运行。
Dave: 有位听众卡米尔来信,她正在学习 HTML、CSS 和 JavaScript,想问初学者有哪些建议。
Chris: 选择原生技术作为爱好非常特别。我建了一个网站用于测试和玩这些技术——CodePen 是绝佳的入门起点。
Dave: 我喜欢构思一个有趣的微型组件,它能以优雅的方式完成某项功能。不必将其视为一个完整网站,而仅仅是一个组件或一次有趣的交互探索。
Chris: 我总是冒出各种想法,比如”我能不能用 CSS 做一个条形图?”然后直接动手试试。关键是思考那个最简单的实现版本会是什么样子,不是功能最齐全的版本。
Dave: 当你在玩转网络技术时,这些探索最终往往会回归到你日后从事的专业工作中。
Chris: 有很多 CSS 可以替代数百甚至数千行的 JavaScript 代码。如果你是那个了解如何通过代码提升交付速度的人,你就是公司中极具价值的资产。
Dave: CodePen 上也有人用 CSS 完整地创作出绘画级的效果,不断挑战技术极限。这种探索本身就充满乐趣。
Dave: 有听众问,使用构建工具是否会对网站开发造成过度限制,以及云托管的内容管理系统是否合适。
Chris: 我们在业务中确定了三层方案。第一层是静态网站构建器,如 Jekyll、11ty、Astro,适合设置好就不管的项目。
Dave: 第二层呢?
Chris: Webflow 这类产品。它非常注重组件化设计,后端使用 React 技术,但生成的内容基本上是静态 HTML。适合需要一定自定义能力的客户。
Dave: 但 Squarespace 和 Wix 似乎也可以修改内容?
Chris: 是的,但实际操作中,客户经常更新到一半就打电话让我帮忙。这些工具的编辑自由度很高,但实际使用时人们往往不会频繁更新。
Dave: 第三层是什么?
Chris: Craft CMS,属于 WordPress、Drupal 这类内容管理系统。适用于更严肃的项目,需要变更管理、内容编辑流程,比如每天发布多篇稿件或管理结构化数据。
Dave: 其他值得考虑的 CMS?
Chris: Sanity 在我们的 Discord 群组中很受欢迎。Contentful 也不错,但要注意它的定价——免费计划之后直接跳到每月近千元,不像常规 SaaS 的渐进式定价。
“当你在玩转网络技术时,这些探索最终往往会以某种方式回归到你日后从事的专业工作中。” —— Dave Rupert
“关键是思考那个最简单的实现版本会是什么样子,不是功能最齐全的版本,而是尽可能简单地完成这件事的最简方式。” —— Chris Coyier
“有很多 CSS 可以替代数百甚至数千行的 JavaScript 代码。如果你是那个了解如何通过代码提升交付速度的人,你就是公司中极具价值的资产。” —— Chris Coyier
“当一个你学习过的 API 实际上比你想象的更好时,这种感觉真不错。” —— Dave Rupert
本期节目展现了前端技术演进与开发者成长的几个关键思考:

#37 Syntax:Vite Plus 要用一个工具替代你全部的开发工具
3 月 26 日 · 37 分钟

#36 Syntax:你的 .env 文件正在把密钥泄露给 AI
3 月 12 日 · 41 分钟

3 月 11 日 · 31 分钟

#34 Whiskey Web and Whatnot:零编程经验也能开发应用?Warp 终端与 AI agents 的魔法
3 月 6 日 · 1 小时 15 分

Web 爱听 · 2 月 19 日 · 44 分钟
ShopTalk | 整理时间:二零二六年二月
主持人:Chris Coyier & Dave Rupert
本期节目深入探讨了前端开发中的几个重要话题:Lit-HTML 在 Web Components 中的应用、Popover API 的隐式锚点功能、Safari 跨平台测试的困境,以及给 HTML/CSS/JavaScript 初学者的实用建议。两位主持人还分享了网站构建工具的选择经验。
Chris: 最近前端大师博客上有两篇关于 Web Components 的内容,其中一篇关于 Lit-HTML 的部分相当不错。其实很多人不知道,可以在 Lit Element 之外单独使用 Lit-HTML。
Dave: 我从那位开发者那里听说后,就推动他更深入地探讨了一下。我当时觉得这个点很多人都不知道,应该强调一下。
Chris: 是的,Lit-HTML 内部有个鲜为人知的酷功能。它在 HTML 标签模板字面量中也能实现类似效果,会在更新位置留下小标记,通过注释形式存在。
Dave: 它不会像 React 那样需要触发整个模板或上游的逻辑,也不必更新整个组件树。Lit Element 或 Lit HTML 只会更新发生变化的那部分内容。
Chris: 没错,如果你将计数从 2 改为 3,仅更新计数的文本部分。这就是使用库的原因——精准的 DOM 更新功能。
Dave: 我不明白为什么人们不直接接受这种模板字面量的方式,或者用 JSX 模板字面量也行,这样或许就能摆脱编译器的依赖。
Chris: 虽然 Babel 让你能够脱离编译器来使用 React 组件,但 Lit-HTML 这种技术在更广泛的 JavaScript 生态系统中尚未得到充分应用。
Dave: 还记得我之前做的那个 Web 组件吗?一个菜单按钮,使用了弹出层 API。我意识到必须连接两件事:Popover ID 和按钮,还有锚点名称和位置锚点。
Chris: 你总是得为它们分配唯一的值并将两者关联起来,对吧?
Dave: 没错,这真麻烦。但如果它们都放在一个 Web 组件内部,还需要手动去记吗?后来我学到了一个新东西——锚点作用域。如果我在卡片范围内定义锚点,即使页面上有十五个卡片,也不会产生作用域泄漏。
Chris: 有趣,所以不需要为每个菜单设置唯一 ID?
Dave: 不需要!每个地方都可以使用相同的名字,因为你在限制其作用范围。这非常棒。
Chris: 我还学到了一个新知识——隐式目标。用于弹出层时,如果通过锚点定位打开,它内部存在一个隐式锚点,即触发它打开的元素。
Dave: 所以你将其外边距设置为零,并指定一个位置区域,它就会围绕该按钮打开,无需额外操作即可实现定位。
Chris: 完全不需要显式连接,它们默认就是关联的。
Dave: 这意味着不需要在 CSS 里特意创建唯一 ID,比如菜单-19 这种。因为支持 CSS 锚点定位的浏览器中,弹出框已具有隐式锚点。
anchor-scope 可以限定锚点作用范围。这简化了弹出层与触发元素的关联,无需为每个实例设置唯一 ID。Dave: 有个问题来自阿德里安·西蒙斯:苹果是否应该像微软过去为 IE 提供跨平台机器镜像那样,提供用于 Safari 测试的虚拟机?
Chris: 如今在 Linux 或 Windows 上测试 Safari 几乎不可能,BrowserStack 这类工具速度慢且成本高昂。
Dave: 苹果其实有理由——只要下载免费的 Xcode,就能获得 iOS 模拟器,支持的 iOS 版本回溯得相当远。
Chris: 但那只适用于 Mac 用户。如果你是 Linux 用户呢?苹果能给你什么?
Dave: 我不认为会实现,但如果他们能做到提供带旧版 Safari 的 macOS 试用版,让 Linux 用户可以测试,那会很好。
Chris: 问题是旧版 Safari 上某些功能运作得太完美了,用户没有动力升级。如果我们都过于用心地支持五年前的 Safari,等于在鼓励用户继续不升级。
Dave: Safari 的存在是为了支持苹果的生态系统,不像 Chrome 作为在线软件业务,有动力让浏览器在任何设备上运行。
Dave: 有位听众卡米尔来信,她正在学习 HTML、CSS 和 JavaScript,想问初学者有哪些建议。
Chris: 选择原生技术作为爱好非常特别。我建了一个网站用于测试和玩这些技术——CodePen 是绝佳的入门起点。
Dave: 我喜欢构思一个有趣的微型组件,它能以优雅的方式完成某项功能。不必将其视为一个完整网站,而仅仅是一个组件或一次有趣的交互探索。
Chris: 我总是冒出各种想法,比如”我能不能用 CSS 做一个条形图?”然后直接动手试试。关键是思考那个最简单的实现版本会是什么样子,不是功能最齐全的版本。
Dave: 当你在玩转网络技术时,这些探索最终往往会回归到你日后从事的专业工作中。
Chris: 有很多 CSS 可以替代数百甚至数千行的 JavaScript 代码。如果你是那个了解如何通过代码提升交付速度的人,你就是公司中极具价值的资产。
Dave: CodePen 上也有人用 CSS 完整地创作出绘画级的效果,不断挑战技术极限。这种探索本身就充满乐趣。
Dave: 有听众问,使用构建工具是否会对网站开发造成过度限制,以及云托管的内容管理系统是否合适。
Chris: 我们在业务中确定了三层方案。第一层是静态网站构建器,如 Jekyll、11ty、Astro,适合设置好就不管的项目。
Dave: 第二层呢?
Chris: Webflow 这类产品。它非常注重组件化设计,后端使用 React 技术,但生成的内容基本上是静态 HTML。适合需要一定自定义能力的客户。
Dave: 但 Squarespace 和 Wix 似乎也可以修改内容?
Chris: 是的,但实际操作中,客户经常更新到一半就打电话让我帮忙。这些工具的编辑自由度很高,但实际使用时人们往往不会频繁更新。
Dave: 第三层是什么?
Chris: Craft CMS,属于 WordPress、Drupal 这类内容管理系统。适用于更严肃的项目,需要变更管理、内容编辑流程,比如每天发布多篇稿件或管理结构化数据。
Dave: 其他值得考虑的 CMS?
Chris: Sanity 在我们的 Discord 群组中很受欢迎。Contentful 也不错,但要注意它的定价——免费计划之后直接跳到每月近千元,不像常规 SaaS 的渐进式定价。
“当你在玩转网络技术时,这些探索最终往往会以某种方式回归到你日后从事的专业工作中。” —— Dave Rupert
“关键是思考那个最简单的实现版本会是什么样子,不是功能最齐全的版本,而是尽可能简单地完成这件事的最简方式。” —— Chris Coyier
“有很多 CSS 可以替代数百甚至数千行的 JavaScript 代码。如果你是那个了解如何通过代码提升交付速度的人,你就是公司中极具价值的资产。” —— Chris Coyier
“当一个你学习过的 API 实际上比你想象的更好时,这种感觉真不错。” —— Dave Rupert
本期节目展现了前端技术演进与开发者成长的几个关键思考:

https://proxy.wavpub.com/iting-webworker.xml复制内容版权归创作者,声湃按创作者开放的 RSS 收录。了解收录与 RSS →

#37 Syntax:Vite Plus 要用一个工具替代你全部的开发工具
3 月 26 日 · 37 分钟

#36 Syntax:你的 .env 文件正在把密钥泄露给 AI
3 月 12 日 · 41 分钟

3 月 11 日 · 31 分钟