预编译组件代码
从名字即可看出,将组件传入 compileToRender
得到 render 函数是一个编译过程,需要一定的编译时间。
这一编译过程只会进行一次,后续渲染可以直接使用 render 函数。但如果对启动时间比较介意,可以在线下对 San 组件进行预编译。
使用 San-SSR 提供的 compileToSource
方法可以得到 render 函数的字符串版本:
const { SanProject } = require('san-ssr')
const fs = require('fs')
const path = require('path')
const san = require('san')
let MyComponent = san.defineComponent({
template: "<div>Hello {{ name }}</div>"
})
const project = new SanProject()
// 得到的是 render 函数文件内容
const renderStr = project.compileToSource(MyComponent)
fs.writeFileSync(path.resolve(__dirname, 'output.js'), renderStr)
// 在服务器端执行以下代码进行渲染
const render = require('./output.js')
const html = render({name: 'San'})