Vue 模板语法
Vue.js 使用了基于 HTML 的模板语法,在的底层实现上,Vue.js 把模板编译成虚拟的 DOM 元素,结合响应系统,在应用状态改变的时候,判断出最少渲染的组件数量,并且,最大限度地减少 DOM 操作次数。
[ Vue 代码运行原理 - 编译:Vue 语法 --> 原生语法 ]
简单来说,前端渲染时,所有 Vue.js 的模板都是合法的 HTML ,能被遵循规范的浏览器和 HTML 解析器解析。
如果你熟悉虚拟 DOM 且偏爱 JS 的原始力量,也可以不用模板,直接写渲染render函数,使用可选的 JSX 语法。
[1] 如何理解前端渲染 ?
即,把数据填充到 HTML 标签中。
[2] 前端渲染的方式
原生 js 拼接字符串基本上就是将数据以字符串的形式拼接到 HTML 标签中,前端代码风格大体如下所示:
缺点:不同开发人员的代码风格差别很大,随着业务的复杂,后期的维护变得逐渐困难起来。
<script> var d = data.weather; var info = document.getElementById('info'); info.innerHTML = ''; for(var i=0;i<d.length;i++){ var date = d[i].date; var day = d[i].info.day; var night = d[i].info.night; var tag = ''; tag += '<span>日期:' + date + '</span><ul>'; tag += '<li>白天天气:' + date[i] + '</li>'; tag += '<li>白天温度:' + date[2] + '</li>'; tag += '<li>白天风向:' + date[3] + '</li>'; tag += '<li>白天风速:' + date[4] + '</li>'; tag += '</ul>' var div = document.createElement('div'); div.innerHTML = tag; info.appendChild(div); } </script>
使用前端模板引擎为了解决上述问题,后来便诞生了前端模板引擎。以下是基于模板引擎 art-template 的一段代码,与拼接字符串相比,代码明显规范了很多,它拥有自己的一套模板语法规则。
优点:大家都遵循同样的规则写代码,代码可读性明显提高,方便后期维护。
缺点:没有专门提供事件机制 — 渲染完成后,需要通过原生 JS 的方式处理事件。
<script id="abc" type="text/html"> {{if isAdmin}} <h1>{{title}}</h1> <ul> {{each list as value i}} <li>索引{{i + 1}}:{{value}}</li> {{/each}} </ul> {{/if}} </script>
- 使用 vue 特有的模板语法
主要包括以下内容:插值表达式、指令、事件绑定、属性绑定、样式绑定、分支循环结构。

