渲染阶段自定义组件路径
有时我们希望在线上执行阶段使用不同的组件。例如有两个版本的组件库,希望通过抽样变量决定使用其中的某个版本。
San-SSR 提供了 customSSRFilePath
API 来支持上述场景。
编译阶段
输入为代码字符串
此时不需要其他额外操作。
输入为组件 Class
由于我们需要提前 require 组件代码得到 Class, 之后传入 San-SSR 进行编译,因此需要使用 markExternalComponent 特性提前标记出外部组件。
运行阶段
在调用 render 函数进行渲染时,传入 customSSRFilePath
:
const render = require('./output')
const html = render({}, {
parentCtx: {
context: {
customSSRFilePath ({ specifier, id, tagName }) {
if (specifier.endsWith('childA.san')) {
return specifier.replace('childA', 'childB')
}
}
}
}
})