js中的template — Jemplate

最近在调试ajax程序的时候,要格式化数据输出html,代码比较混乱,这时候就比较怀念php里可以用到的各式各样的模板.然而js毕竟是很强大的,俺找到了这个javascript写的template类 -- Jemplate,用法还算简单.

首先得包含必要的文件:

HTML:
  1. <script language="javascript" src="./prototype.js"> </script>
  2. <script language="javascript" src="./lyase_view.js"> </script>

 

模板可以写在当前html里,也可以写在单独的模板文件:

HTML:
  1. <!--模板定义在textarea标签里了-->
  2. <textarea id="template" style="display:none">
  3.  The Value of x is: <%= context.x%>
  4. </textarea>
  5. <!--赋值,上面的<%= context.x%>将被替换-->
  6. <script>document.write(Lyase.View.render({element:"template"}, {x : 10})); </script>

 

如果模板写在单独的文件里:

HTML:
  1. <script>document.write(Lyase.View.render({file:"tmp.tpl"}, {x : 10})); </script>

 

模板tmp.tpl的内容为:

HTML:
  1. The value of x is: <%= context.x%>

 

甚至还可以支持复杂的循环:

HTML:
  1. <textarea id="template" style="display:none">
  2. <% context.list.each(function(pair){%>
  3.       The value of <%= pair.name %> is: <%= pair.value%>
  4. <% }) %>
  5. </textarea>

 

JAVASCRIPT:
  1. //code
  2. document. write (Lyase. View. render ( {element: "template" }, {list : [ { name : "x", value : 10 }, { name : "y", value : 20 } ] } ) );

 

很可惜的是,我测试的时候,这东东只能utf-8环境下跑的很好,gb2312会被显示为乱码,估计是Prototype的ajax在post的时候出现的问题

更多的例子看这里:
http://inforno.net/articles/2006/02/15/the-embed-javascript-implementation

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue.jstemplate编译是指将Vue模板转换为渲染函数的过程。在Vue.js,我们可以使用template定义组件的结构和内容,但是浏览器无法直接理解和执行template,因此需要将其编译为渲染函数,以便Vue.js可以将其渲染为真实的DOM元素。 Vue.jstemplate编译过程包括以下几个步骤: 1. 解析模板:将template解析为抽象语法树(AST)。 2. 静态优化:对AST进行静态优化,例如删除不必要的节点、合并静态节点等。 3. 代码生成:将AST转换为渲染函数的代码字符串。 4. 编译结果缓存:将编译结果缓存起来,以便下次使用时可以直接使用缓存结果,提高性能。 通过Vue.jstemplate编译,我们可以将模板转换为可执行的渲染函数,从而实现动态渲染和响应式更新。 ### 回答2: Vue.js 是一个流行的前端框架,其 template 是一种常用的语法,可以在 Vue.js 用于定义组件的模板。Vue.js 的编译器会将 template 编译成真正的 HTML 渲染到浏览器template 在 Vue.js 有两种方式。一种是通过字符串形式,直接将组件的 template 写在代码,如下: ``` Vue.component('my-component', { template: '<div>Hello, {{name}}!</div>', data: function() { return { name: 'Vue.js' }; } }); ``` 另一种是通过在 HTML 使用 template 元素来引用组件的模板,如下: ``` <template id="my-component-template"> <div>Hello, {{name}}!</div> </template> Vue.component('my-component', { template: '#my-component-template', data: function() { return { name: 'Vue.js' }; } }); ``` 无论是哪种方式,当 Vue.js 的编译器遇到 template 时,都会将其编译成真正的 HTML 代码,并将其渲染到浏览器。 在编译 template 时,Vue.js 会将其的插值表达式({{xxx}})替换成对应的数据,从而实现数据绑定的效果。同时,Vue.js 还支持条件渲染和循环渲染等复杂的模板语法,以满足更多的需求。 在编译后,Vue.js 会将 template 生成的 HTML 代码与组件的 JavaScript 代码合并,从而形成最终的组件体系结构。这一过程是在运行时进行的,因此 Vue.js 能够动态地更新组件的数据,并实时地反映到浏览器。 总之,理解 Vue.js template 编译过程,对于使用 Vue.js 来进行 Web 开发是非常重要的。只有深入理解 Vue.js 的模板语法和编译原理,才能更好地运用 Vue.js 框架,进行高效、灵活的开发工作。 ### 回答3: Vue.js是一个先进的前端框架,是用来构建交互式的用户界面的。在Vue.js,模板是由HTML代码和Vue指令组成的文件,Vue.js需要将它们编译成可执行的JavaScript函数。这样有助于提高模板的性能和减少框架的服务端负载。在这里,我们将深入探讨Vue.jstemplate编译。 1. 模板编译 在Vue.js,模板编译是将模板转换为渲染函数的过程,Vue.js将模板的指令等内容转换为可执行的渲染函数。这个渲染函数会返回一个虚拟的DOM节点(virtual dom),它会与实际的DOM节点进行比较,确定实际的DOM节点需要更新的内容。 2. 模板编译的流程 下面是Vue.js的模板编译的流程: 词法分析: 解析HTML模板,生成对应的AST(Abstract Syntax Tree)。 语法分析: 对AST进行语法分析,识别出模板的各种语法节点,所有的语法节点都将被编译为一个相应的渲染函数。 代码生成: 将编译好的渲染函数转换为JavaScript代码。 3. 模板编译的优点 在Vue.js,模板编译的优点包括: 提高性能: 在模板编译过程,Vue.js会将模板的指令和数据等内容转换为JavaScript代码,这样在实际运行过程就会大大提高性能。 降低负载: 由于模板编译是在客户端进行的,因此可以降低服务端的负载。 易于维护: 通过模板编译,我们可以将业务逻辑和HTML代码分离,这样有助于我们对代码的维护和升级。 总结: Vue.js的模板编译将模板转换为可执行的JavaScript代码。这有助于提高模板的性能,减轻服务端的负担,同时也使得代码的维护和升级更加容易。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值