1、MVC 三个对象分别做什么,给出伪代码示例
M:model(模型) 负责操作数据与服务器的交互,将请求到的数据传给control
V:View (视图) 负责所有UI界面,比如el,templete,render
C:controller(控制器)负责其他,比如初始化和事件,负责监听和处理View事件,并更新和调用 Model,负责监听Model数据变化,并更新View
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| var M = {}, V = {}, C = {};
M.data = "hello world";
V.render = (M) => { alert(M.data); }
C.handleOnload = () => { V.render(M); }
window.onload = C.handleOnload;
const m={ data={}, create(){}, delete(){}, update(){}, get(){} }
const v={ el:null, html:`代码`, init(container){ v.el=$(container) }, render(n){} }
const c={ init(constainer){} events:{事件} add(){执行} minus(){执行} update(){执行} get(){执行} autoBindEvents(){逻辑} } ———————————————— 版权声明:本文为CSDN博主「小峰同学的前端之路」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https:
|
2、EventBus 有哪些 API,是做什么用的,给出伪代码示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| _self.getEventBus 方法:getEventBus:function(){} 描述:直接返回前端EventBus对象,不推荐直接使用。 _self.subscribeEvent 方法:subscribeEvent:function(event,fn,pointcut){} 描述:注册事件,并指定实现方法和插入点 参数:event:字符串形式事件名,命名规则为Event或ActionEvent结尾 fn:实现方法 插入点类型:after、overwrite、before _self.unSubscribeEvent 方法:unSubscribeEvent:function(event){} 描述:取消注册事件 参数:event:字符串形式事件名,命名规则为Event或ActionEvent结尾 _self.fireEvent 方法:fireEvent:function(event){} 描述:触发某个具体事件,执行这个事件对于的实现方法队列 参数:event:字符串形式事件名,命名规则为Event或ActionEvent结尾 其他参数:可以增加一些后续参数 Handler实现说明: 参数:接收fireEvent方法传递过来的参数 特殊参数e:只有按钮绑定的页面功能才有值,手工调用不会有e的。页面功能代码生成时,默认会生成这个e,值为jquery.event 返回值:无返回值的处理,只能通过返回值确定是否继续执行后续的方法队列 true/无:继续执行后续的实现方法队列 false:停止执行后续的实现方法队列 其他:返回true Handle队列中数据的传递:只能利用页面的全局变量,本身没有提供处理机制 ———————————————— 版权声明:本文为CSDN博主「小峰同学的前端之路」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https:
|
3、表驱动编程是做什么的(可以自己查查资料)
Table-Driven Approach
解决if else面对多种情况的情形,以表的形式进行获取数据,通过下标索引来查
1 2 3 4 5 6
| methods{ add(){执行} delete(){执行} minus(){执行} ... }
|
4、我是如何理解模块化的
模块化就是把一个模块的代码放在一个文件夹里,再进行引入,简化了代码之间的影响
1 2 3 4
| let string=`内容` import default string
import $ from `string`
|