html生成列表模板的方法

列表是最常用的数据结构了,不管是对于前端还是后端来说都是这样,对于我个人来说最常用的渲染方法是这样的

1.从服务器请求数据

2.遍历请求的数据,使用字符串模板拼接

3.注入到dom

这几步对于我来说都已经写吐了,那么还是那个问题,有没有优化的方法呢

//从服务器拿数据
const array = [
{
    title: '苏炳添创造历史', 
    content: '在东京奥运会百米飞人比赛中,中国选手苏炳添跑出了9秒83的成绩,创造了亚洲百米的最好 成绩'
},
{
    title: '这街4开播',
    content: '这就是街舞第四季在优酷播出,这一期邀请了不少国际舞者加入,给中外街舞交流创造了平台'
}];

let html = '';

//拼接字符串模板,箭头函数写法
array.forEach(obj=>{
    html += `<li>
                <div>${obj.title}</div>
                <div>${obj.content}</div>
            <li>`
})

$('ul').html(html)

一般的情况下,数据结构都是比较复杂的,而且有比较多的样式要设置,所以把模板独立成函数

const array = [
{
    title: '苏炳添创造历史', 
    content: '在东京奥运会百米飞人比赛中,中国选手苏炳添跑出了9秒83的成绩,创造了亚洲百米的最好成绩'
},
{
    title: '这街4开播',
    content: '这就是街舞第四季在优酷播出,这一期邀请了不少国际舞者加入,给中外街舞交流创造了平台'
}];

//模板函数
function template(obj){
    return  `<li>
                <div>${obj.title}</div>
                <div>${obj.content}</div>
            <li>`
}

let html = '';

array.forEach(obj=>{
    html += template(obj);
})

$('ul').html(html)

还能不能继续优化呢,在一个暗无天日的晚上,我无意中看到我前面写的一些东西,有一段迭代用了map而不是for或者forEach,于是有

const array = [
{
    title: '苏炳添创造历史', 
    content: '在东京奥运会百米飞人比赛中,中国选手苏炳添跑出了9秒83的成绩,创造了亚洲百米的最好成绩'
},
{
    title: '这街4开播',
    content: '这就是街舞第四季在优酷播出,这一期邀请了不少国际舞者加入,给中外街舞交流创造了平台'
}];

function template(obj){
    return  `<li>
                <div>${obj.title}</div>
                <div>${obj.content}</div>
            <li>`
}

let html = array.map(obj=> template(obj))
$('ul').html(html)

当然一般我都这么写,是不是比原来清爽了许多

const array = [
{
    title: '苏炳添创造历史', 
    content: '在东京奥运会百米飞人比赛中,中国选手苏炳添跑出了9秒83的成绩,创造了亚洲百米的最好        成绩'
},
{
    title: '这街4开播',
    content: '这就是街舞第四季在优酷播出,这一期邀请了不少国际舞者加入,给中外街舞交流创造了平台'
}];

function template(obj){
    return  `<li>
                <div>${obj.title}</div>
                <div>${obj.content}</div>
            <li>`
}

$('ul').html(array.map(obj=> template(obj)))

啥,有人看不懂吗,我注释都写得这么全了,再说为啥要看懂,知道怎么用不就完了么

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

free5156

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值