当前位置:首页 > JavaScript

js {{}} 实现

2026-03-02 03:39:17JavaScript

理解 js {{}} 的用途

{{}} 在 JavaScript 中通常用于模板字符串或动态插值场景,常见于前端框架(如 Vue、React)或模板引擎(如 Handlebars)。以下是几种典型实现方式:

方法 1:模板字符串(ES6)

使用反引号 `${} 实现动态插值:

const name = "World";
console.log(`Hello ${name}`); // 输出 "Hello World"
  • ${} 内可嵌入变量或表达式(如 ${user.age}${1 + 2})。

方法 2:Vue 中的双大括号

Vue 使用 {{}} 进行数据绑定:

<div id="app">
  {{ message }} <!-- 动态显示 data 中的 message 值 -->
</div>
new Vue({
  el: '#app',
  data: { message: 'Hello Vue!' }
});
  • 仅适用于 Vue 模板,编译后会替换为真实数据。

方法 3:Handlebars 模板引擎

通过 {{}} 插入动态内容:

const template = Handlebars.compile("<p>{{content}}</p>");
const html = template({ content: "Handlebars example" });
// html 输出 "<p>Handlebars example</p>"
  • 需引入 Handlebars 库,适用于服务端或静态页面渲染。

方法 4:自定义替换函数

手动实现类似 {{}} 的替换逻辑:

js {{}} 实现

function render(template, data) {
  return template.replace(/\{\{(\w+)\}\}/g, (match, key) => data[key] || "");
}

const output = render("Hello {{name}}", { name: "Alice" });
console.log(output); // 输出 "Hello Alice"
  • 正则表达式 /\{\{(\w+)\}\}/g 匹配 {{key}},并用 data 中的值替换。

注意事项

  1. 框架限制{{}} 的具体行为依赖框架或库(如 Vue 中为响应式绑定,Handlebars 中为模板渲染)。
  2. 转义问题:直接替换时需防范 XSS 攻击,避免插入未转义的 HTML。
  3. 性能:频繁的动态插值可能影响性能,建议结合虚拟 DOM 或批处理优化。

根据需求选择合适方案,纯 JavaScript 推荐模板字符串或自定义替换,框架场景使用其内置语法。

标签: js
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…