目前使用过两种模板渲染方式
一是利用框架或者模板引擎进行渲染,其实这种方式就是在view层内使用了后端代码,个人感觉还是不符合静态分离原则。
二是我个人比较喜欢用的异步请求数据,然后js渲染模板,个人感觉这是讲view层纯静态化。我一般是先讲html写一个模板然后通过ajax获取属于然后使用str.replace替换,再innerHTML至对应的DOM中。但我会觉得这样写比较乱
<div class="_theme" hidden>
<div class="_input">
<div class="form-group">
<div class="input-line">
<label for="[id]">[required][title]</label>
<div class="input-module">
<input type="text" class="form-control" id="[id]" placeholder="[placeholder]" value="[value]" maxlength="[maxlength]" minlength="[minlength]">
</div>
</div>
<div class="description">[description]</div>
</div>
</div>
</div>
.....
$.ajax({
url : url,
success(response)
{
let data = response['msg'];
if(data.length < 1) return null;
for(let i in data)
{
let row = data[i];
let theme = $('._theme ._'+row['lx']).html();
let html = '';
html = theme.replace(/\[required\]/,required)
.replace(/\[title\]/,row['bm'])
.replace(/\[id\]/,row['mc'])
.replace(/\[placeholder\]/,row['msh'])
.replace(/\[value\]/,row['val'])
$('.setting-block').append(theme);
}
}
});
不知道还有没有其他方式的view渲染方式?
喜欢用ajax获取数据用浏览器端来渲染,这个是这几年都有提的前后端分离,主要的体现有 vue,react,angular等都是前后端分离的,不过有个问题这个方式还要配置服务器渲染,不然对SEO不是很友好。
就和app开发差不多,界面写好,通过api获取数据,再渲染界面,单页应用,现在有很多混合app就是静态界面打包成app,再通过ajax获取,本地渲染。
比较推荐使用vue
轻量级,可以单独作为前端渲染插件使用。如果要整体开发单页应用可以搜搜vue全家桶。