V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
unt
V2EX  ›  程序员

请教大家一个 web 功能设计问题

  •  1
     
  •   unt · 2023-03-02 16:22:09 +08:00 · 1024 次点击
    这是一个创建于 393 天前的主题,其中的信息可能已经有所发展或是发生改变。

    同一个逻辑页面,需要给不同的用户(每个用户都有若干子用户)显示不同的 UI (区别很大,应该要做组件级隔离),目前姑且算是有五种 UI 。怎么设计呢:

    1. 直接建不同的路由,权限里分配路由权限;

    2. 配置路由参数,权限里配置路由参数,再配合路由守卫鉴权;

    3. 将页面 ui 部分进行有效的拆分,直接在组件里进行判断显示

    6 条回复    2023-03-03 12:17:25 +08:00
    yunye
        1
    yunye  
       2023-03-02 16:28:50 +08:00
    3
    kop1989smurf
        2
    kop1989smurf  
       2023-03-02 16:29:49 +08:00
    1 和 2 暂且理解为一种设计的两种技术解决方案。
    3 是单独的一种设计形态。

    然后个人理解这还取决于:
    1 、你的业务确定封顶在 5 类 UI 么,会不会再次蔓延?如果会,建议选 3 ,否则 1 或 2
    2 、这个业务 UI 不同,逻辑相同么?如果逻辑相同,有选 3 的可能性(不推荐),否则 1 或 2.
    unt
        3
    unt  
    OP
       2023-03-02 18:20:33 +08:00 via iPhone
    @kop1989smurf 数据和逻辑目前是一样的,但是不排除以后需要根据客户需求调整。

    然后 UI 种类是根据业务发展来的,目前是 3 种,不排除以后业务好的话有 20 种。也有可能今年业务不佳,业务整体裁掉。
    duan602728596
        4
    duan602728596  
       2023-03-02 20:04:18 +08:00
    感觉和我以前做过的新闻平台发文的需求很像,我们当时有好多新闻类型。我当时的做法是:
    每个类型一种 UI 。
    像叠积木一样,将 UI 需要的组件进行拆分,每个组件只负责一种功能。组件之前如果有通信,用 Event 监听。这样可以减少组件间的互相依赖。不同的类型就将组件根据不同的需求组合起来。
    数据和逻辑统一处理,数据只有一个入口和出口。当时在浏览器环境内使用了 graphql 。不同类型需要获取和处理哪些数据,直接通过 graphql 的查询语句组合起来。这样就不必拆分处理逻辑,而且也能精细的获取到想要的数据。
    路由处理建议 1 和 2 。
    vizards
        5
    vizards  
       2023-03-03 11:27:36 +08:00 via iPhone
    目前实践下来最简单的方法是给需要权限的 dom 挂上 data-permission-id (你喜欢的名字),然后在整个 app 顶层用 mutationObserver 集中处理权限并按需隐藏所有的权限 dom ,既实现了框架无关也做到了动态化控制权限无需发布前端代码
    unt
        6
    unt  
    OP
       2023-03-03 12:17:25 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2839 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:38 · PVG 21:38 · LAX 06:38 · JFK 09:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.