javascript - Vue 是如何实现双 curl / mustache 语法的?

标签 javascript html css vue.js

像 Vue 这样的框架如何在 HTML 文档中实现自己的自定义语法?

所以我想创建一个模板引擎,因此我需要知道如何实现我自己的自定义语法。我认为一个简单的方法是可以在 Vue 中使用的双 curl 。 curl 示例:

<h1>{{pageTitle}}</h1>

我的第一个想法是使用 `String.prototype.replaceAll(regex, string);但我被困在我会使用的正则表达式上。事实上现在想想,我可能需要一个动态正则表达式?

    p.replaceAll(/\{\{()\}\}/g, '<p>{{embeddedVar}}</p>')

我考虑的另一个选择是解析器或词法分析器,但我什至不知道从哪里开始。我在学校用 C++ 构建了它们。我想也许 NPM 有一个预建的?

似乎有几个开发人员编写了他们自己的自定义模板引擎,该引擎内置了对双大括号 的支持。我在想,也许有一种通用的实现方式。

最佳答案

浏览器确实不理解Vue语法。这项工作由每个 Vue 应用程序中导入的 Vue 库完成。

原始标记(显示花括号)甚至可以在页面加载时看到一瞬间,这是因为 Vue 尚未完全加载。

关于javascript - Vue 是如何实现双 curl / mustache 语法的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59162745/

相关文章:

javascript - 使用 jQuery 过滤下拉菜单

c# - 使用 Razor 禁用输入元素

javascript - 更新 svg 和 d3 中的路径样式

javascript - Node.js - 提取部分 URL

javascript - 内容区域 div 上的表格溢出,当浏览器最小化时

javascript - 未捕获的类型错误 : Cannot read property 'offsetTop' of null (navbar)

javascript - 将 HTTP header 时间戳转换为另一种日期时间格式

javascript - PHP 页面在部署到 Web 服务时不显示样式表或 Javascript

javascript - 我的 window.onscroll 事件不工作

javascript - 刷新时更改整个 CSS 文件