- 获取路由信息
Nuxt.js 在接收到浏览器的请求后,会先根据请求的 URL 地址解析出相应的路由信息,然后获取符合条件的 Vue 组件。
- 数据获取
在获取到路由信息和组件后,Nuxt.js 会根据组件的 asyncData
方法或 fetch
方法获取需要渲染的数据。如果组件定义了这些方法,它们会在服务器端调用,并将数据添加到渲染上下文对象(context)中,在需要的时候将这些数据作为组件的 props 传递给组件。
- 组件渲染
数据获取完成后,Nuxt.js 会根据组件和数据,使用 Vue SSR 渲染引擎对组件进行渲染,并生成一个 HTML 字符串。
- 注入数据
在生成 HTML 代码之前,Nuxt.js 会将渲染上下文对象(包括组件得到的数据)序列化为 JSON 格式,并注入到页面上,以便在浏览器端使用。
- 生成 HTML 代码
在注入数据完成后,Nuxt.js 会使用生成的 HTML 代码作为响应内容返回给浏览器。
- 客户端渲染
浏览器获取到 HTML 响应后,会进行渲染,并下载、执行页面所需的 JavaScript 和 CSS 文件。这些文件包括用于激活组件交互逻辑的 JavaScript 代码。这个过程称为客户端渲染。
- 激活组件
在浏览器端,Vue 实例会在 DOM 元素被挂载时自动激活,并使用服务器端注入的数据进行初始化,并完成组件交互逻辑。这些数据可以通过组件的 props 属性访问和使用。
需要注意的是,在 Nuxt.js 的页面渲染过程中,asyncData
和 fetch
方法的执行顺序是有一定规则的,而组件的其他声明周期函数则会在客户端渲染时被触发。
综上所述,以上是 Nuxt.js 页面渲染的详细过程。了解这个过程可以帮助我们更好地理解 Nuxt.js 的工作原理,以及如何进行开发、调试和优化。
标签:渲染,nuxt,js,HTML,组件,Nuxt,页面 From: https://www.cnblogs.com/lunar-huazai/p/17285889.html