所有分类
  • 所有分类
  • 后端开发
LMvc框架:小项目不适用?大型项目神助攻!速度提升瞬间

LMvc框架:小项目不适用?大型项目神助攻!速度提升瞬间

沿用我在lufylegend.js引擎中的命名方式,我给这个框架命名为LMvc,框架已被加入到lufylegend.js的下载包。本框架是我在lufylegend.js引擎的基础上完成的,所以使用它的话,你需要引入lufylegend.js

LMvc框架:小项目不适用?大型项目神助攻!速度提升瞬间

说到设计模式,咱们开发软件怎么能少得了MVC?

咱们这次就来聊聊用LMvc搞出来的那个MVC,看看它到底是怎么回事儿,还能用来实现什么东西,到最后再看它到底有多好用,值不值得用在那些高大上的项目里头。

LMvc框架简介

简单来说,LVMc这个框架就是从lufylegend.js那里借鉴来的,主要就是方便我们使用MVC模式。它牛在哪里?就是可以把控制器(Controller)、模型(Model)和视图(View)拆分开,让你的代码看起来更清爽,也好维护和扩展。不过要注意,如果只是搞个小项目,比如小程序啥的,那就不用MVC啦;但是如果想搞定大型项目,那MVC绝对是你的好帮手!

动态加载文件优化

你是不是在搞开发时碰上了大难题?比如看到那个像是垃圾堆似的JS文件加载半天,导致网页慢如蜗牛?没关系,我们有LMvc框架专门解决这个问题。它能自动加载你正在看的页面需要的图片和文件,让网页速度瞬间提升。更棒的是,如果你想提前知道图片信息,只需要把它们放到LMvc.datalist里,下次再用LMvc框架加载时就可以直接调用,再也不用浪费时间去读取!

初始化及组件调用

敲个LMVC.init(),就可以进去IndexController!记得看看每个小部件儿,之前提到过的loadMvc函数得用起来。而且各部分之间还能直接互通,比如控制器里直接用控制器.model调模型,模型里用模型.controller唤控制器。

组件之间关系

你看在LMVC这套框架里,每个部分都有自己的事儿要干。比如控制器这个家伙就是来安排模型和视图做事儿的,它们之间还可以相互扯皮啥的。说白了,控制器里就可以用this.model来操控模型,用this.view来看视图;模型里也能用this.controller来控制控制器,用this.view来展示视图;而视图,它就是用this.controller来指使控制器,用this.model来折腾模型。这样一来,代码是不是变得更容易懂了?

function IndexController(){
	base(this,MyController,[]);
}
IndexController.prototype.construct=function(){
	var self = this;
	self.loadMvc("Logo",self.logoLoad);
};
IndexController.prototype.logoLoad=function(){
	var self = this;
	var logo = new LogoController();
	self.view.addChild(logo.view);
};

文件结构规范

记得,每一个控制器都得塞到Controllers文件夹里面去,后面还得加上“Controller”这个后缀名。模型,就藏在Models文件夹里,记得要带上”Model”这俩字。至于视图,当然也得藏进Views文件夹,记得要加上”View”。最后,不要忘了我们的小帮手们它们就在Helpers文件夹中,全都是各种实用的帮助函数。别忘了还有Libraries文件夹,那里是装所有类库文件的地方,这样才能让我们更轻松地管理和维护项目!

控制器函数与加载机制

function GameController(){
	base(this,MyController,[]);
}
GameController.prototype.construct=function(){
	var self = this;
	self.load.library(["Character","AttackCharacter","Face","Bar","effects/Effect02",
	"effects/Qinglong","effects/Baihu","BitmapSprite","CoolingTime"],self.libraryLoadOver);
};
GameController.prototype.libraryLoadOver=function(){
	var self = this;
	var chara = new Character();
	self.view.addChild(chara);

每个controller都有专属技能比如说那个Construct,一上来就要用到,搞定那些初始化之后的事儿。再来说说Load,它就是专门用来读东西的,不管是模型、视图、库还是助手,甚至图片也能搞定。不过,如果你想在同一个控制器里用不同的模型或者视图,那就得自己动手读取。

MVC组件间通信

function GameController(){
	base(this,MyController,[]);
}
GameController.prototype.construct=function(){
	var self = this;
	self.load.helper(["Talk","UI"],self.helperloadOver);
};
GameController.prototype.helperloadOver=function(){
	var self = this;
	Talk("对话测试");
};

告诉你个事儿,MVC这哥儿仨就像亲兄弟一样好使!举个栗子,在控制台上动动手指输入个this.load.helper就能搞定,把小工具库调出来;而到了视图或模型那边,还可以和其它部分玩儿在一起,处理各种数据。这么做有啥好处?简单说,代码随便复制粘贴,维护起来超轻松!

详细示例与实践指南

function GameController(){
	base(this,MyController,[]);
}
GameController.prototype.construct=function(){
	var self = this;
	var list = self.model.getCommonImages();
	self.load.image(list,self.loadImageOver);
};
GameController.prototype.loadImageOver=function(){
	var self = this;
	//读取完图片后,可以通过LMvc.datalist获取
};

想学LMvc吗?先别急着动手,去LuFYLegend.js引擎里的mvcSample看看!这里有详细的步骤和提示,保证你立马就能学会,轻松掌握LMvc。

用IMP.NETMVC这种玩意儿来搞大中项目真是太舒服了!代码一目了然,随便哪儿都能找到你需要的那个组件;还有,文件的管理也井井有条,工作起来就顺畅多了,自然效率也跟着上去了。不过,到底要用不用这MVC模式还得看你的项目大小和需求咯。

原文链接:https://www.icz.com/technicalinformation/web/javascript/2024/04/15632.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?