之前有说到系统中的模板系统,现在来说说在用户端在活动展示页面的逻辑,主要是用户端的入口,模板母版以及组件就不多赘述,上一篇记录有相关的详细说明。
入口
前面说到,入口页面的主要功能就是后台交互,负责接收后台传来的数据并传给模板,以及将用户操作返回给后台。用户无论从任何地方进入活动页,都是进入这个入口,随后根据后台返回的数据来给用户展示内容。
所以,入口页面具备以下两点信息:
活动的 ID 。每当商家创建一个活动,该活动都会有一个独立的用于识别的 ID ,该 ID 会带在入口页面的 URL 里,后台就可以以此识别用户进入的是哪个活动。(在开发时我称它为原始连接)
发起者 ID 。此项可选,当用户成功发起了某个活动后,他需要把自己的活动分享给他人,而这个分享的链接,就是在原始链接的基础上,加上发起者的标识,也是带在 URL 上的。
访问者的角色。即使是访问同一个活动,访问者的角色(参与者、发起者等)不同,所需要的数据都是不一样的。与后台的通讯中会带有独立的 section ,后台可以以此来识别浏览者于该活动的角色。
有了以上的信息,后台就给前台返回必要的数据了。
功能
商户端预览入口是纯展示的,而用户端的入口则需要更丰富的交互。
便捷操作按钮,页面中需要有一些方便用户操作的按钮,现在能想到一些有:一键分享 - 进入商家店铺 - 背景音乐控制 - 投诉 - 引导关注 - 客服
悬浮导航,进入个人中心、订单中心、主页等导航键。
以上的这些功能,可以使用组件添加到入口页面
实时
一切就绪,后台返回活动的数据,浏览者的角色,就可以开始页面的渲染了。在页面成功展示之后,可能还需要一些实时的数据,例如当前参加了该活动的用户,帮砍的数据,他人发起拼团的数据等。
操作
用户所有的点击操作,都会传递到入口文件,然后才与后台交互。这里涉及到两个问题。一个是组件通信问题,因为跨越了两到三层组件,如何优雅实现值得考虑 (暂时想用 $listeners) ,另一方面就是如何屏蔽商家预览页面的操作。