国内最专业的IT技术学习网

UI设计

当前位置:主页 > UI设计 >

从Web开发者的视角来解读MVC架构

发布时间:2019/07/04标签:   视图    点击量:

原标题:从Web开发者的视角来解读MVC架构
【51CTO.com快译】MVC(模子-视图-操纵器)MVC代表了一种软件框架的计划形式。该框架的重要功效是:经过同意多名开辟职员独特在一个名目上发展任务,以分别利用顺序的功效、逻辑和接口,进而增进有构造的编程完成方式。上面,让咱们从Web开辟职员的角度来解读MVC的差别组件。起首,让咱们来看看有哪些应用到了MVC的风行Web框架: Ruby on Rails (Ruby) Express (JS) Backbone (JS) Angular (JS) Laravel (PHP) Zend (PHP) Codeigniter (PHP) Django (Python) Flask (Python)接着,咱们重点来探讨Ruby on Rails和Codeigniter(PHP)。这两个框架在它们的文件构造中有着差别的文件夹,也就是所谓的模子、视图和操纵器。固然相似并借用了Django for Python的某些观点,然而这两个框架现实上并没有严厉的文件夹构造。此类框架的另一个特色是:统一个框架能够会将其利用顺序安排在操纵器中,而后将另一局部安排在模子中。因而很多Web开辟职员以为MVC架构略显凌乱,乃至毫无牢固章法可循。不外我团体以为:用户可能采纳多种方法来创立MVC架构,恰是其亮点与机动性地点。上面,咱们正式从Web开辟者的角度为各人解读MVC的三个组件:模子、视图和操纵器。模子因为模子部件担任猎取和操纵数据,因而它个别属于利用顺序的“大脑”。平日情形下,它与MySQL之类的关联型数据库,以及MongoDB之类的NoSQL数据库停止交互。不外这并不主要,在支撑多种数据库的差别框架中,模子的代码可能始终坚持雷同。在现实利用中,咱们只要要修正数据库的驱动顺序即可,而不用晓得与之合作的数据库范例。比方:您完整能够让本人的模子与JSON文件停止交互,并从中提取数据。而这个简略的JSON文件乃至都不算是一个数据库。模子岂但可能担任诸如SELECT、INSERT、UPDATE和DELETE之类的查问操纵,还可能与操纵器停止通讯。在大少数情形下,操纵器能够经过模子来恳求数据,而且由操纵器来更新视图。不外,经过某些框架,模子也能够间接去更新视图。固然,这明显增添了MVC的庞杂性。可见,差别的框架有着截然差别的完成方法。视图就视图而言,顾名思义它与利用顺序的现实视图无关,也就是咱们常说的用户界面。它担任面向用户的表现,以及让用户怎样与利用顺序停止交互。因而,视图平日包含:HTML、CSS、以及来自操纵器的种种静态值。在利用运转时,操纵器会与视图、以及模子坚持通讯。一样,依据您所选用的框架差别,详细的模板引擎也能够会有所差别。此处的“模板引擎”是指:某个同意静态数据的东西。假如咱们应用的是间接的HTML,那末就弗成能有种种输入变量,也无奈选用if语句之类的逻辑。然而假如应用了模板引擎,那末咱们便可以在视图中、或许是在模板中准确地处置此类静态变量了。因而,模板引擎的典范示例包含:Handlebars.js(https://handlebarsjs.com/)与Dust.js(https://www.dustjs.com/)。关于Ruby on Rails而言,咱们能够应用嵌入式的ERB(https://ruby-doc.org/stdlib/libdoc/erb/rdoc/ERB.html)。而关于Ruby言语,咱们也能够应用Haml(http://haml.info/)和针对Python的Flask(http://flask.pocoo.org/)。固然,咱们另有其余的选项,比方说JavaScript。操纵器最初是操纵器,它与用户的输出无关。比方:用户在拜访页面时点击某个链接,触发了一个GET恳求;或许是以提交表单的情势,发送一个POST恳求;固然咱们也能够收回删除、或提出更新等范例的恳求。因为这些举措无奈间接从扫瞄器中天生,因而您只能自行发生一个GET或POST,或许是经过内置在某个框架中的HTTP客户端,来到达该目标。在此,操纵器充任的是模子与视图之间的旁边人脚色。操纵器须要经过模子从数据库中猎取某些数据,而操纵器在猎取到相干数据以后,经过加载视图的方法,将该数据通报给它。接着,模板引擎接收后续的“义务”,完成输入变量之类的逻辑事件。固然,操纵器也能够在不通报数据的情形下加载某个视图。而此处须要有一个带有HTML和CSS的纯Web页面,就不是实在的模板逻辑。上面是一个十分简略的例子(或称流程图)。

上一篇:Facebook 开源深度学习推荐模型 DLRM

下一篇:没有了

返回
版权信息Copyright © IT技术教程 版权所有    ICP备案编号:鲁ICP备09013610号