吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 573|回复: 3
收起左侧

[学习记录] 前端页面布局可配置

[复制链接]
kaixinaha 发表于 2022-11-13 16:53
本帖最后由 kaixinaha 于 2022-11-13 17:14 编辑

一、业务需求

Snipaste_2022-11-13_16-51-38.png
客户可以调整页面布局,如上图,当先从上到下的展示顺序为:轮播图 ---> 公告 ---> 筛选栏 ---> 展示列表。
如果当前客户1想要展示的页面布局,从上到下依次为:公告 ---> 轮播图 ---> 筛选栏 ---> 展示列表
客户2:公告 ---> 筛选栏 ---> 轮播图 ---> 展示列表
那么如何通过一套代码进行实现?

二、分析

  1. 用户要展示的布局顺序由后端传过来, 前端需要把数据变成数组,方便遍历渲染['公告','轮播图','筛选栏','展示列表']
  2. 如何按照数组的排列顺序展示组件?

    1. 可以把所有可能的展示顺序都写一套代码,然后与后端返回的展示顺序匹配,展示对应的页面布局。
    2. 思考:每套代码中的所用的组件一样,只是排列顺序不同,那么如何使用一套代码满足所有可能的布局?
    3. 在一套代码中,按照笨方法如何展示?实际上就是遍历布局可能性的过程,然后判断展示。
    <template>
      <template v-if="JSON.string(showArr) === `'['banner','notice','filter','list']'`">
        <banner>轮播图</banner>
        <notice>公告</notice>
        <filter>筛选</filter>
        <list>列表</list>
    </template>
      <template v-if="JSON.string(showArr) === `'['banner','filter','notice','list']'`">
        <banner>轮播图</banner>
        <filter>筛选</filter>
        <notice>公告</notice>
        <list>列表</list>
      </template>
      <template v-if="JSON.string(showArr) === `'['banner','list','filter','notice']'`">
        <banner>轮播图</banner>
        <list>列表</list>
        <notice>公告</notice>
        <filter>筛选</filter>
      </template>
    ...
    </template>

    类似这样的遍历

  • 思考:如何在这样的列表中只展示一个对应的组件?
  • v-if="item === 组件标识"

    <template>
    <banner>轮播图</banner>
    <notice>公告</notice>
    <filter>筛选</filter>
    <list>列表</list>
    </template>
    <template>
    <banner v-if="item === banner">轮播图</banner>
    <notice v-if="item === notice">公告</notice>
    <filter v-if="item === filter">筛选</filter>
    <list v-if="item === list">列表</list>
    </template>
  • 遍历一下后端返回的数组,完成
    <template>
    <template v-for="item in showArr">
    <banner v-if="item === banner">轮播图</banner>
    <notice v-if="item === notice">公告</notice>
    <filter v-if="item === filter">筛选</filter>
    <list v-if="item === list">列表</list>
    </template>
    </template>

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
pwp + 1 + 1 看不懂但是给大佬加一分是有充分条件的

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Fireworks0435 发表于 2022-11-13 20:05
学到了,谢谢分享
ywmadonis 发表于 2022-11-13 22:06
也可以从前端通过“拖动”相应模块实现,也就是直接拖动改变栏目顺序,需要相应的插件或者框架支持。
头像被屏蔽
xiadongming 发表于 2022-11-13 22:22
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 05:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表