首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尤雨溪谈Vue进化历程

Github Star; 2014.10:第一次实现 Vue SFC 单文件组件(vueify),使用 Browserify 打包; 2014.11:第一次完全重写(0.11),考虑如何让它更适合用在生产环境...,每个版本模板语法都会有比较重大变动,并且作用域规则不是很明确; 基于 DOM 渲染机制: 模板和编译后 JavaScript 之间没有对应性,当时 Vue 并没有“编译”过程; 当时...做了很多 Vue 2 SSR 功能开发,通过这个 demo 来测 Vue 2 SSR 在实际开发是否易用; 这个 demo 更重要意义是启发了上层 SSR 框架,比如 Nuxt.js,Nuxt...输出高度优化 Virtual DOM 渲染函数; 在 SSR :输出 buffer + 字符串拼接; 将来:Vapar mode(不依赖 Virtual DOM 渲染代码,获得更好性能) 在单文件组件引入更多语法糖...短期: 稳定 Reactivity Transform / Suspense,从实验特性变为稳定特性; Vue 3.3 重点是 SSR 水合性能改进,提供以异步组件为边界水合和按需水合

97920

Astro是2023年最好web框架,原因如下

要么它们是基于像Vue、React或Svelte这样前端框架用JavaScript编写,因此由于我们称之为“水合作用”,它们发送了过多JavaScript。...它在构建时执行你JS代码,就像服务器端渲染(SSR)框架一样,但它不进行水合作用(hydration),因为大多数基于内容网站不需要 JS。 但是当你需要JS时,你该怎么办?...Astro Islands是独立组件,你可以从Vue、React、Svelte甚至更多前端框架(见结论部分)带来! 这是他们能做最方便事情。 这些组件将被单独渲染,并注入到最终HTML。...要么是静态(没有水合作用),要么是动态(带有JS)。...下面是一个使用 Astro 最终HTML页面可能样子: 在像Nuxt或NextJS这样框架,在页面加载之后没有什么是静态,因为它会对整个页面进行水合作用,从而注入不必要JavaScript。

23210
您找到你想要的搜索结果了吗?
是的
没有找到

为什么 RSC 才是正确答案?

这个重要阶段称为水合作用,是最初由服务器提供静态页面被赋予生命阶段。在水合过程,React 控制浏览器,根据所提供静态 HTML 重建内存组件树。它仔细规划了树交互元素放置。...SSR 第二个问题是,为了成功实现水合作用,React 向服务器渲染 HTML 添加交互性,浏览器组件树必须与服务器生成组件树完全匹配。...这意味着组件所有 JavaScript 都必须先加载到客户端,然后才能开始对其中任何组件进行 Hydrating。SSR 第三个问题与水合作用本身有关。...这个新架构允许使用组件来解锁两个主要 SSR 功能:服务器上 HTML 流式传输为客户选择性水合服务器上 HTML 流式传输正如我们在上一节讨论,传统上,SSR 是一件要么全有要么全无事情。...React 尽快开始水合,从而可以与标题和侧面导航等元素进行交互,而无需等待主要内容水合。这个过程由 React 自动管理。在多个组件等待水合作用情况下,React 根据用户交互优先考虑水合作用

22210

Islands Architecture 孤岛(岛屿)架构

我们已经讨论了静态渲染各种变体,使你能够构建试图达到以下平衡应用程序:与客户端渲染(CSR)应用程序相当互动性与服务器端渲染(SSR)应用程序相当 SEO 优势SSR 核心原则是在服务器端渲染...组件级部分水合静态同构渲染和调度可以构建到框架以支持岛屿架构。...,并在客户端上进行水合作用,以识别两端相同组件。...需要客户端 JavaScript 组件会单独加载其依赖项。因此,它提供了内置部分水合作用。Astro 还可以延迟加载组件,具体取决于它们何时变得可见。...将 Astro 与为 Next.js 和 Nuxt.js 创建文档网站进行比较,发现 JavaScript 代码减少了 83%。其他用户也报告了 Astro 性能改进。

16610

现代前端框架渲染模式

hydration 主要目的是挂载事件处理器、触发副作用等等 优点 SEO 友好 用户可以更快看到内容了 缺点 部署环境要求。...Progressive Hydration - 渐进水合 上文提到,常规 SSR 通常需要完整加载客户端程序(上图 bundle.js),水合之后才能得到可交互页面,这就导致 TTI 会偏晚。...Selective Hydration - 选择性水合 选择性水合(Progressive Hydration) 是 渐进式水合(Progressive Hydration) 和 流式SSR(SSR...按 Astro 解释是: 你可以将‘岛屿’想象成在一片由静态(不可交互) HTML 页面动态岛屿 每个岛屿都是独立加载、局部水合。...在这里实现了 ‘去 JavaScript’ 需要打包分发给客户端 水合 不需要水合 需要水合 支持 async Y N 支持状态(state, context) N Y 支持事件、副作用 N Y RSC

47430

岛屿架构

你可以将它们想象成在一片由静态(不可交互) HTML 页面动态岛屿。 从上面这句话定义可以提炼一些要点: 静态 HTML。 交互性 UI 组件。 多个岛屿,支持独立呈现。...运行后, 服务端直出 HTML,除了 HMR ,没有引入额外 JavaScript。真 Zero JS! ---- 然而,这个有别于典型 SSR 框架。...SSR 也是在服务端渲染完整 HTML 树,但是在客户端依然需要加载完整视图框架代码,然后进行水合(Hydration),才能让页面变得可交互: 那 Astro 没有 JS,显然是无法与用户进行动态交互...---- 有了‘岛屿’赋能 Astro 架构: Astro 在服务端渲染完整 HTML 树,然后在客户端按需加载岛屿代码,并进行水合。看起来有点像微前端、或者 iframe 这样机制。...在 Astro 定位非常清晰,它把站点类型分为两种: 内容为中心 → 也称为 网站 → Astro 擅长 交互为中心 → 也称为 Web 应用程序 → 应该使用 Next.js 或者 Nuxt.js

39460

万字长文助你搞懂现代网页开发中常见10种渲染模式

(Island Architectur) 9、可恢复框架(Resumability) 10、流式服务器端渲染 (Streaming SSR) 在每个案例,我们将研究渲染模式概念、优点和缺点、使用案例...在浏览器,它将控制权(水合)交给JavaScript,动态地将内容注入(渲染)到外壳。在这种情况下,渲染是在客户端(CSR)上执行。...优点 适度互动 SEO友好 快速加载时间 对动态数据良好支持 缺点 复杂实施 成本(需要服务器) 相关框架 Next.js Nuxt.js Demo (Nextjs) 在NEXT.js上实现SSR代码与...优点 静态网站实时自动更新支持 性价比高 SEO友好 良好性能和可扩展性 缺点 实施复杂性 不适用于高度动态数据应用 相关框架 Next.js Nuxt.js Demo (Nextjs) 在NEXT.js...水合作用之所以昂贵,有两个原因: 框架必须下载与当前页面相关所有组件代码。 框架必须执行与页面上组件相关联模板,以重建监听器位置和内部组件树。

38221

精读《React 18》

这句话是对,但实际上用户对页面交互及时性感知是分为两种,第一种是即时输入反馈,第二种是这个输入带来作用反馈,比如更新列表。...其中,即使输入反馈只要能优先满足,即便副作用反馈更慢一些,也会带来更好体验,更不用说副作用反馈大部分情况会因为即使输入反馈变化而作废。...所以这个特性其实是转为 SSR 准备,而功能启用载体就是 Suspense(所以以后不要再认为 Suspense 只是一个 loading 作用)。...而这个难点在于,SSR 需要后端到前端配合,在 React 18 之前,后端到前端过程完全没有优化,而现在将 SSR HTML 吞吐改成多次,按需,并且水合过程还支持抢占,因此性能得到进一步提升...从后端到前端 “顺滑” 管道式 SSR,并将 hydration 过程按需化,且支持被更高优先级用户交互行为打断,第一优先水合用户正在交互部分。

1.5K30

JavaScript 框架生态系统最新动态!

Angular Angular 最近发布包含了许多重大变化,包括信号(Signals)、可延迟视图(Deferrable views)、NgOptimizedImage、非破坏性水合(Non-destructive...hydration)和部分水合(Partial hydration)。...非破坏性水合(Non-destructive hydration):非破坏性水合修复了在服务器端渲染 Angular 应用程序 DOM 在客户端重新构建时可能出现闪烁问题。...部分水合(Partial hydration):通过部分水合,默认情况下,在页面呈现时浏览器不加载页面的任何 JavaScript。相反,随着用户与页面的交互,页面的特定部分会进行水合。...与一般浏览器扩展不同,Nuxt Dev Tools 作为一个浮动面板出现在你应用旁边浏览器,这使得它们能够提供非常详细和视觉上丰富界面。

8410

使用 Fresh 框架构建Web 应用

islands​Islands/: 暂且翻译为岛屿(算是 deno 所定义一个名词),主要作用就是用于存放交互式组件(服务端组件),可以在客户端和服务端运行。...前端应用会将新 UI 整体(服务端组件)合并到客户端 UI 树里面(也有叫 hydration 水合),此过程不会对客户端其他状态产生影响,还能达到保持客户端状态目的,极大增强了用户体验。...通常做法是判断组件当前状态,可以用如下方式来判断是否为浏览器环境。...但可以肯定是,fresh 方向与 next.js/nuxt.js 一致。...就从用户开发体验而言,就已经很难让我再次选择 fresh,更何况还有像 next.js/nuxt.js 这样全栈框架。

2K20

MCE | 肿瘤微环境在癌症作用

这些相互作用通过近分泌和旁分泌机制、恶性细胞和非恶性基质细胞信号通路激活,在癌症进展过程中发挥重要作用,如诱导增殖和抑制细胞凋亡、诱导血管生成和避免缺氧、抑制免疫系统以及远处转移等。...考虑到免疫系统在肿瘤作用,可以通过 1) 抑制巨噬细胞募集和分化;2) 靶向慢性炎症 (包括被激活炎症信号通路);3) 激活免疫系统抗肿瘤活性应对肿瘤进展。...■ 靶向慢性炎症 (包括一些肿瘤细胞和免疫细胞之间相互作用时被激活炎症信号通路) 癌症相关慢性炎症是癌组织共同特征,其形成是一个复杂过程,涉及环境因素与癌组织本身之间错综复杂相互作用。...靶向外泌体 癌症衍生外泌体 (CCEs) 是肿瘤微环境形成重要参与者,在癌症和基质细胞之间细胞间通讯具有重要作用,这将导致肿瘤微环境成熟和肿瘤生长和增殖。...癌细胞和基质细胞之间相互作用通过细胞间接触或微环境可溶性小分子促进癌症进展。在这个过程,癌细胞通过这些相互作用改变了基质细胞一些特性。反过来,改变基质细胞以类似的方式影响癌细胞行为。

36520

【免费视频教程】NuxtJs框架-安装与介绍

【1】、nuxtJs安装 【2】、nuxtJs路由 今天咱们来学习一下,SSR(服务器端渲染)nuxt.js框架 SPA(单页应用)不利于搜索引擎SEO操作, 特别是百度根本没法抓取到SPA内容页面, 1....-- nuxt介绍 --> 它是基于vuessr服务端渲染框架, 优点: 基于 Vue.js 自动代码分层 服务端渲染 强大路由功能,支持异步数据 静态文件服务 ES6/ES7 语法支持...-- 第二部分,安装、搭建nuxt.js开发环境 --> 1、安装node; 2、要安装vue-cli脚手架 <!...在你电脑里,最好不是c盘, 建一个目录, 在cmd里面进入你刚才建目录里, npx create-nuxt-app 项目名(不能有大写字母) 5、在安装过程,安装程序会问你一些问题, 例如

2.2K30

【玩转腾讯云】让NuxtSSR在云函数飞起来

那如何在云开发让我NuxtSSR跑起来呢 往下看 开发需求 node.js环境 我们需要用到npm以及云函数是基于node.js -v8.9 所以node.js必不可少~ create-nuxt-app...注:每个账户只能创建一个开启免费资源环境 点击立即开通后,云环境会自动进行初始化。...(过程大概持续2-3分钟)耐心等待即可~ 待我们初始化完成后,使用命令tcb init 选择进行关联环境 $ tcb init √ 选择关联环境 · nuxt - [nuxt-1a3208:空]...创建完成后我们使用命令tcb env:list来查看云环境信息,并将云环境ID复制下来~ 我们进入到云开发项目目录nuxt 此时目录结构是这样 . ├── functions /...Choose rendering mode Universal (SSR) # 是否开启SSR服务端渲染,选择Universal开启 ?

2K178

你心水 Nuxt.js SSR 也来啦!

接下来,就看看如何把 Nuxt.js SSR 跑在云开发上。...01 开发环境需求 Node.js 环境 Nuxt.js和云函数都是基于 Node.js ,因此,Node.js 是必不可少底层依赖。...(过程大概持续2-3分钟)耐心等待即可~ 待我们初始化完成后,使用命令 tcb init,选择进行关联环境: $ tcb init √ 选择关联环境 · nuxt - [nuxt-1a3208:空]...创建完成后我们使用命令 tcb env:list 来查看云环境信息,并将云环境ID复制下来,然后进入到云开发项目目录nuxt, 此时目录结构是这样├── functions // 云函数目录 ├─...做个总结 NuxtSSR部署三步走: 1.构建云开发项目,用于后续部署 2.在云函数构建nuxt项目并配置 3.部署云函数,并为其新建HTTP连接,这样就可以访问具体连接

1.2K20

尚医通-客户端平台

# 尚医通-客户端平台 服务端渲染技术 NUXT 什么是服务端渲染 什么是NUXT NUXT环境初始化 下载压缩包 解压 修改package.json 修改nuxt.config.js 终端中进入项目目录安装依赖...服务器端渲染(SSR)优势主要在于:更好 SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染页面。...)与转化率直接相关应用程序而言,服务器端渲染(SSR)至关重要。...# 什么是NUXT Nuxt.js 是一个基于 Vue.js 轻量级应用框架,可用来创建服务端渲染 (SSR) 应用,也可充当静态站点引擎生成静态站点应用,具有优雅代码结构分层和热加载等特性。...官网网站: https://zh.nuxtjs.org/ (opens new window) # NUXT环境初始化 # 下载压缩包 https://github.com/nuxt-community

5.8K20

Nuxt3正式发布!5个纬度全方位感受Nuxt3魅力!

defineComponent除了Vue3Reactivity APIref等,Nuxt3额外内置函数和组件以及用户自定义函数和组件都是自动导入,可以自由调用。...参考:Nuxt3 自动导入 和 Nuxt3 TypeScript 支持所有渲染模式和所有环境SSR2More! Nuxt.js有一个主要特性是可以自己选择浏览器还是服务器渲染模式。...),Nuxt.js可以用一套代码生产多类型环境,而且模式切换也非常简单。...除了基本3种模式,Nuxt3 还支持一些无服务器环境,比如AWS Lambda。Nuxt3 也根据环境进行了预置方案,可以部署在Serverless、Workers等搭建成本比较高环境。...参考:Nuxt3Vue 高度集成Vite、Vue Router等实用库!

3.4K30

从壹开始前后端分离【 .NETCore2.1 +Vue 2 +AOP+DI】框架之一 || 前言

项目代码(SSR) https://github.com/anjoy8/Nuxt.tBug 老张 .NetCore与Vue 框架学习目录如下 :如果你是刚刚入门 .net ,或者看我教程还比较费劲,可以先从小白开始...+ JWT 实现授权验证登陆 25 ║初探SSR服务端渲染(个人博客二) 26 ║Client渲染、Server渲染知多少{补充} 27 ║ Nuxt 基础:框架初探 28 ║ Nuxt 基础:面向源码研究...Nuxt.js 29 ║ Nuxt实战:异步实现数据双端渲染 30 ║ Nuxt实战:动态路由+同构 31 ║ Nuxt终篇:基于Vuex权限验证探究 前端 Admin 概览 01 ║ 权限后台系统...║ 动态路由配置 & 项目快速开发 04 ║ NetCore + SignalR 实现日志消息推送 ---- 技术 本系列文章只是对现有的一些技术做一个简单说明或者是引入,只是一个抛砖引玉作用...* Nuxt.js服务端渲染SSR ---- 结语 这里再一次说明,仅仅是简单特别简单入门使用,如果对于上边技术,你从来没有听过,或者听过没用过,嗯,你可以简单花点儿时间看一看

85720

微前端未来

简而言之,不是对整个页面进行水合,而只是立即对用户可见“岛屿”进行水合,其他部分将在用户看到时进行水合。...考虑到微前端性质和部分水合机制,我认为这种技术应该获得更多青睐,从而进一步优化我们 SSR 微前端应用。...在分布式系统,持续部署通常是常态,我们必须为开发人员提供安全保障,使他们能够通过迭代方式,快速将代码从笔记本电脑发布到生产环境,而降低一次性部署让所有用户都受 Bug 影响风险。...我建议是尽快实施这些策略一种,因为它们可以为你团队创造一个更安全环境,结果可能会让你惊讶……积极方面。 路 由 和部署策略密切相关,客户端渲染微前端应用程序缺乏可靠路由策略。...当我们将路由库与前面介绍部署策略混在一起时,就可以有一个非常智能路由,它可以照顾到较新微前端版本、不同环境,甚至不同用户角色。

40220

Vue 服务端渲染原理解析与入门实战

、法、术、器概念;不要仅仅停留在工具使用和一些工具奇技淫巧,更多要向法、道层面成长; 什么是 SSR ?...; 其中 Vue 框架和 React 框架都有对应比较成熟 SSR 解决方案,React对应是 Next.js 框架,Vue 对应就是 Nuxt.js,当然,如果你对这些都不感兴趣,也可以自己实现一个...SSR 服务端应用,我自己之前也写过一个,如果你感兴趣,想看看我实现代码,可以留言给我,回头做成教程发出来; image-20210126144831765.png 我们以 Vue 对应 Nuxt.js...image-20210217151648215.png 我们可以根据提示信息,运行项目,项目有开发环境和生产环境两种运行方式,开发环境下直接使用 npm run dev 即可,而要运行生产环境,则需要先进行...组件和编程式导航,nuxt-link 组件用于在页面添加链接跳转到其他页面,目前 作用和 router-link 一致,推荐阅读 Vue 路由文档 来了解它使用方法,所以

7.7K40
领券