博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端渲染利器——JsRender入门
阅读量:5912 次
发布时间:2019-06-19

本文共 1403 字,大约阅读时间需要 4 分钟。

     不少前端人员应该都用过,它是一个比较强大的模板,不牵涉太多技术依赖,使用起来非常舒服。我本人在前端开发中使用React之前,都是用的它了(实际上我感觉React没有好用)。不管怎么说,先来学习下JsRender技术吧,如果前端的开发环境比较单纯,还是很适合的。

 

    一、JsRender特性

     新一代的前端渲染模板

  • 使用模板,可以预先自定义一些固定格式的HTML标签,在需要显示数据时,再传入真实数据组装并展示在Web页中;这避免了在JS中通过“+”等手动分割、连接字符串的复杂过程。

  • 针对高性能和纯字符串渲染进行了优化

  • 无需依赖DOM和jQuery

     优先使用场景

  • 元素重复出现
  • 动态加载数据,并前端显示

   

    二、JsRender使用

  1. 引入js:jsrender.js
  2. 定义模板:
  3. 准备好要显示的数据 json对象 var data = { xxx:“text” }
  4. 编译成元素:document.getElementById(“XXX”).render(data);   或 $("#XXX").render(data);
  5. 通过容器元素的append、before、after显示

      基本语法

  • 原始赋值: {
    {:属性名}},显示原始数据
  • 转码赋值: {
    {>属性名}},显示HTML编码后的数据
  • 控制语句可嵌套使用:
    • 判断: {
      {if 表达式}} … {
      {else}} … {
      {/if}}
    • 循环: {
      {for 数组}} … {
      {/for}}
  • 其它进阶
    • 模板嵌套,使用:{
      {for tmpl="#另一个模板" /}}
    • 转换器 $.views.converters()定义,使用:{
      {func:属性名}}
    • 帮助方法 $.views.helpers()定义,使用:{
      {if ~func(arg1, arg2, ...)}}
    • 自定义标签 $.views.tags()

     

 

     几个你可能不知道的要点

  • 获取当前的索引:
    #index,如{
    {if #index==0}} ... {
    {/if}}
  • 获取整个数据:
    #data,    如<option value="{
    {:#index}}">{
    {:#data}}</option>
  • 获取父模板:
    #parent,    如{
    {if (#parent.data.general==0)}} ... {
    {/if}}

 

     三、举个例子

     下图中是我以前做的一个Web页面:

  

      它的数据来源大概是这样:

[      {           id:12,          cid:195,          type:"问题简述",          impact:"错误级别",           status:"处理状态",          owner:"处理人",          count:1,          path:"问题所在文件的SVN路径",          rev:对应文件的SVN版本号,          …      } , ...]

  我们关注的是这个模板是怎么写的:

    大家可以看上图中标红的部分,除了helper与tag外,大部分功能都用上了。我实在不想好好做个demo给大家下载了,本身不复杂,不明白可以再交流。

 

    四、性能比较

 

 

 

    转载请注明原址:

转载于:https://www.cnblogs.com/lekko/p/5888962.html

你可能感兴趣的文章
开发工程师未来应具备的能力
查看>>
spring-boot项目中如何集成使用thymeleaf
查看>>
SQL Server中查看哪些游标未释放
查看>>
Protostar format3
查看>>
[UWP]了解模板化控件(6):使用附加属性
查看>>
我的友情链接
查看>>
PowerShell Switch判断语句示例
查看>>
《Spring实战》第四版读书笔记 第一章 Spring之旅
查看>>
那些年,一起学的Java 3-3
查看>>
那些年,一起学的Java 2-4
查看>>
Java中的多态和C#中的多态的区别
查看>>
UIView之【UIViewContentMode】
查看>>
yum 及手动编译rpm包
查看>>
使用Maven运行 MyBatis Generator
查看>>
7-设计模式-代理模式
查看>>
RedHat已更改其开源许可规则
查看>>
Android零基础入门第29节:善用TableLayout表格布局,事半功倍
查看>>
element-ui 的 table后端排序
查看>>
redis集群搭建
查看>>
linux重定向
查看>>