Vue 和 Django mustache 模板冲突

Posted

技术标签:

【中文标题】Vue 和 Django mustache 模板冲突【英文标题】:Vue and Django mustache templating conflict 【发布时间】:2021-01-04 22:45:50 【问题描述】:

我打算在前端使用 Vue,在后端使用 Django,但它们都使用双花括号 作为模板标签。有没有一种简单的方法可以将两者之一更改为使用其他自定义模板标签?

提前致谢。

【问题讨论】:

【参考方案1】:

如果您不想更改 Vue 中的分隔符,可以使用逐字 Django 标记来防止大括号被解释:

% verbatim %
     myvuevar 
% endverbatim %

这是一种快速简单的方法,可能就足够了。它的缺点是您不能在逐字标记中呈现 Django 变量(当然)。

【讨论】:

谢谢。但我希望两者都被渲染。【参考方案2】:

Vue 有一个名为delimiters 的参数,用于设置占位符的分隔符。例如,通过这种方式,您可以将它们设置为双方括号:

new Vue(
    delimiters: ['[[', ']]'],
    el: "#myapp",
    //...
)


<div>
    djangoPlaceholder 
   [[ vuePlaceholderValue ]]
</div>

【讨论】:

是否可以使用 Django 模板来做到这一点?

以上是关于Vue 和 Django mustache 模板冲突的主要内容,如果未能解决你的问题,请参考以下文章

Vue源码-手写mustache源码

Vue 不会在我的组件的 mustache 模板 ( ) 中呈现内容

vue底层之mustache初识

使用 Django 进行 Javascript 模板化

mustache语法

Vue模板语法