为什么捐赠
API 浏览器
升级指南
NEW!
quasar.config 文件
将项目转换为 CLI with Vite
浏览器兼容性
支持 TypeScript
目录结构
命令列表
CSS 预处理器
路由
懒加载 - 代码拆分
处理资源
启动文件
预取功能
API 代理
处理 Vite
处理 process.env
使用 Pinia 进行状态管理
使用 Vuex 进行状态管理
代码检查器
测试 & 安全审计
开发移动应用程序
Ajax 请求
向公众开放开发服务器
Quasar CLI with Vite - @quasar/app-vite
Vue SSR 指令

警告

本指南适用于 Quasar v2.6+ 版本。

SSR 应用在服务器和客户端运行相同的代码。在 .vue SFC 文件中声明 Vue 指令(或直接导入)通常足以使其在非 SSR 构建中工作。但在 SSR 构建中,由于 Vue 3 的架构,它需要一些额外的操作。

服务器端构建需要所有 Vue 指令在其定义中也指定一个 getSSRProps() 方法。

提示

  • 您不需要为 Quasar 提供的 Vue 指令工作而做任何事情。
  • 但是,如果您使用的是第三方提供的 Vue 指令,并且 CLI 在其上出错,那么您将需要联系该软件包的所有者,以便他们使其符合 Vue 3 SSR 规范(即在指令定义中添加 getSSRProps() 方法)。

如何声明指令

以下内容摘自 Vue.js 文档

由于大多数自定义指令涉及直接的 DOM 操作,因此它们在 SSR 期间被忽略。但是,如果您想指定自定义指令的渲染方式(即它应该向渲染的元素添加哪些属性),您可以使用 getSSRProps 指令钩子

const myDirective = {
  mounted (el, binding) {
    // client-side implementation:
    // directly update the DOM
    el.id = binding.value
  },

  getSSRProps (binding) {
    // server-side implementation:
    // return the props to be rendered.
    // getSSRProps only receives the directive binding.
    return {
      id: binding.value
    }
  }
}