变量作为参数来标记函数

Variables As Arguments To Tag Functions

是否可以在模板字面量为变量的情况下创建标签函数? 例如而不是这个

render`<h1>Hello World</h1>`

有什么办法吗?

const template = `<h1>Hello World</h1>`
render(template)

不,那不可能。 Tagged templates 是一种特殊语法,其中 render 将使用字符串数组和所有 ${value} 值进行调用。通过将它存储在这样的变量中,模板文字被解释为要转换为字符串而不是函数调用的常规模板文字。

当然,如果您的 render 函数所做的只是连接模板及其变量,那也没关系。但请注意,当您将模板字面量存储在变量中时,模板文字中的变量已经被评估,以后无法重新评估。