为什么捐赠
API 资源管理器
Quasar CLI with Webpack - @quasar/app-webpack
Vue SSR 指令

警告

本指南适用于 Quasar v2.6+ 和 @quasar/app-webpack v3.4+

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
    }
  }
}