当加载一个组件时我们想要
完全水合的组件,当浏览器中发生水合过程时幕后发生了什么?在传统架构中加载页面时,是否会加载整个初始 JavaScript,然后是否会下载并实例化整个包?还是有更聪明的事情发生?马修:不,这就是它的工作原理。就像我说的,我们并没有真正做任何神奇的事情,只是非常简单。你说你想要在空闲时加载一些东西,我们在空闲时加载它。我们所做的就是专门为该组件注入我们自己的小脚本,例如,对于空闲,有一个名为 requestIdleCallback、window.requestIdleCallback 的 API,当浏览器调用它时,我们导入您的 JavaScript,基本上就 电报号码数据 是这样。然后我们渲染它。每个框架都有不同的方式在客户端上渲染组件,因此我们拥有实际执行渲染的代码。然后从那里开始,您就进入了框架组件。你所做的任何事情,如果它是一个 View 组件,你用 View 做的任何事情,这一切都发生在里面。
德鲁:所以你仍然依赖像 Webpack 这样的传统工具,你需要做些什么来进行捆绑以确保你只加载一个 React 实例和所有这些东西?
马修:是的。我们使用雪包。我们的团队是 Snowpack 的创造者。Fred 最初创建了,但这是一个比 Webpack 这样的工具更现代的工具,它的作用是基本上为您提供了一个可以按需编译内容的开发服务器。因此,每个文件都在 Dev 中单独编译,而不是获得整个“应用程序”的一个巨大捆绑包,然后当您部署该产品时,当然所有文件都会以优化的方式捆绑在一起。是的。
德鲁:静态站点生成器的优点之一是它们通常非常简单。您正在获取一些 Markdown 文件或其他任何文件并将它们渲染为 HTML,并且实际上并没有太多错误。Astro 正在做的事情的复杂性是否存在更多固有风险,您可能会更改代码、创建新组件或其他什么,然后突然发现 Astro 由于不兼容而无法构建?这有风险吗?
马修:这是一个非常好的问题。我的意思是,是的。我想只要你添加另一层障碍,就有可能出现不兼容的情况。最重要的是,您正在使用框架,并且必须确保您的框架版本与插件、React 插件或您正在使用的任何插件相匹配,但我们会保持所有这些内容都是最新的。所以我没有看到很多关于不兼容的问题,Astro 的特别之处在于,我喜欢它的一件事是我们的社区非常热情,我们有人,因为我们选择了这个大帐篷,带上你自己的帐篷框架方法,我们的 Discord 中有一些人是 Svelte 专家。他们非常擅长这一点。他们非常擅长查看。如果您有任何疑问,或者您不知道如何做,您可以去那里提出问题,可能有人可以帮助您。
http://zh-cn.djusa.club/wp-content/uploads/2024/01/rm.jpeg
马修所以我知道,在过去,存在 View 的某些功能无法正常工作的问题,那是因为我们的插件没有正确实现某些功能,并且我们有人很快修复了这些问题。
德鲁:所以有一个非常活跃的社区。你说它是在 Discord 服务器周围?
马修:是的。是的。我们有一个 Discord,里面有很多人,有为文档做出贡献的人,有帮助解决支持问题的人,还有非常活跃的社区。是的。
德鲁:好吧,Astro 的成熟度如何?它已经存在多久了?人们是否在生产中使用它?
马修:是的,肯定有很多人在生产中使用它。正如我们一直在谈论的那样,Astro 的想法是一种构建多页面应用程序的方法,将这种架构带回来,采用人们用组件和组件框架构建事物的新现代方式,但摆脱了其中的 SPA 部分,我认为这会给不需要 SPA 的网站带来很多问题。
頁:
[1]