当前位置: 首页 > news >正文

新余网站建设网站开发和网站制作的区别

新余网站建设,网站开发和网站制作的区别,做网站运营需要具备哪些能力,中国十大电商做的好的网站一、MVC mvc&#xff1a;是一种代码架构设计模式&#xff0c;前端中的mvc最主要的作用就是将视图和数据模型进行分离 &#xff08;1&#xff09; 为什么需要 MVC 简单理解&#xff1a;也就是为什么需要将视图和数据模型进行分离 <select id"drinkSelect">&…

一、MVC

mvc:是一种代码架构设计模式,前端中的mvc最主要的作用就是将视图和数据模型进行分离

(1) 为什么需要 MVC

简单理解:也就是为什么需要将视图和数据模型进行分离

<select id="drinkSelect"><option value="coffee">coffee</option><option value="milk">milk</option><option value="juice">juice</option>
</select>
<p id="theColorOfDrink"></p><script type="text/javascript">document.getElementById('drinkSelect').onchange = function() {var colorvar colorOfDrink = {coffee: 'brown',milk: 'white',juice: 'orange'}color = colorOfDrink[this.value]document.getElementById('theColorOfDrink').innerHTML = color}
</script>

通过上面代码我们会发现视图的操作和数据以及逻辑的处理全部混淆在一起了,当前代码量小,并不会发现太大的问题,但是项目大,代码量多的时候,对于代码的维护会相对复杂,分离后具有如下优势

  • 维护性高 
  • 代码耦合性低 (相互联系较低)
  • 代码可复用

(2)如何设计MVC? 

mvc可以分为三个部分

  • 视图(View):用户界面。
  • 控制器(Controller):业务逻辑
  • 模型(Model):数据保存

V 视图层

页面结构

<select id="drinkSelect"><option value="coffee">coffee</option><option value="milk">milk</option><option value="juice">juice</option>
</select>
<p id="theColorOfDrink"></p>

dom 操作

showDrinkColor.view = {start: function() {// 获取select监听change事件document.getElementById('drinkSelect').onchange = this.onchange},onchange: function() {// 事件函数 做的逻辑 获取 变化后的数据传递给controllershowDrinkColor.set(document.getElementById('drinkSelect').value)},update: function() {document.getElementById('theColorOfDrink').innerHTML = showDrinkColor.model.getDrinkColor()}
}

M 数据层

数据和操作数据的逻辑:

showDrinkColor.model = {colorOfDrink: {coffee: 'brown',milk: 'white',juice: 'orange'},selectedDrink: null,setDrink: function(drinkName) {this.selectedDrink = this.colorOfDrink[this.selectedDrink]? drinkName: nullthis.onchange()},onchange: function() {showDrinkColor.view.update()},getDrinkColor: function() {return this.selectedDrink? this.colorOfDrink[this.selectedDrink]: 'white'}
}

C 控制层

视图和数据模型 进行关联

var showDrinkColor = {start: function() {// 给视图绑定事件this.view.start()},set: function(drinkName) {// 拿到视图传递过来的数据在调用数据模型的方法更新数据this.model.setDrink(drinkName)}
}
showDrinkColor.start()
  1. 视图发生变化触发 Controller,并且将数据传递给 Controller
  2. Controller 拿到更新的数据触发 model 并将更新的数据传递给 model
  3. model 拿到数据更新数据并且触发 view 视图更新

mvc通信方式流程

所有通信都是单向的。 

为了小伙伴们方便复制查看 合一个完整的

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body>mvc写法<select id="drinkSelect"><option value="coffee">coffee</option><option value="milk">milk</option><option value="juice">juice</option></select><p id="theColorOfDrink"></p><script>var showDrinkColor = {start: function () {// 给视图绑定事件this.view.start();},set: function (drinkName) {// 拿到视图传递过来的数据在调用数据模型的方法更新数据this.model.setDrink(drinkName);},};showDrinkColor.view = {start: function () {console.log('监听了');// 获取select监听change事件document.getElementById("drinkSelect").onchange = this.onchange;},onchange: function () {// 事件函数 做的逻辑 获取 变化后的数据传递给controllershowDrinkColor.set(document.getElementById("drinkSelect").value);},update: function () {document.getElementById("theColorOfDrink").innerHTML =showDrinkColor.model.getDrinkColor();},};showDrinkColor.model = {colorOfDrink: {coffee: "brown",milk: "white",juice: "orange",},selectedDrink: null,setDrink: function (drinkName) {this.selectedDrink = this.colorOfDrink[this.selectedDrink]? drinkName: null;this.onchange();},onchange: function () {showDrinkColor.view.update();},getDrinkColor: function () {return this.selectedDrink? this.colorOfDrink[this.selectedDrink]: "white";},};showDrinkColor.start();</script></body>
</html>

 二、MVVM

MVVM 是 Model-View-ViewModel 的简写。它本质上就是 MVC 的改进版,整体和 mvc 差不多,最大的区别就是mvc 是单向的,而 mvvm 是双向的,并且是自动的,也就是数据发生变化自动同步视图,视图发生变化自动同步数据,同时解决了 mvc 中大量的 DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验。和当 Model 频繁发生变化,开发者需要主动更新到 View

在这里插入图片描述

    耦合低,是真的低,view 和 model 完全分离

    维护性高,易维护,上手快

    双向绑定:视图发生变化数据自动同步,数据发生变化视图也自动同步

    减少了 dom 的操作,可以更多的关注业务逻辑

http://www.dtcms.com/a/595548.html

相关文章:

  • 音乐类网站建设选题背景中国搜索引擎排行榜
  • 突破元宇宙交互瓶颈:基于SenseVoice构建情感化虚拟人语音系统
  • 四合一小说网站搭建教程宁波seo网络推广公司排名
  • 1v1网站建设哪些网站可以做外部锚文本
  • 深圳定制网站制作费用做网站大概花多少钱
  • 网站设计文献网站建设遵循原则
  • 追天网站建设 优帮云wordpress 管理插件下载
  • 网站建设需要用什么书购物网站备案
  • 江苏联运建设有限公司网站莱芜民生网站
  • 成都网站建设 创新互联页面设计word
  • 湖南网站制作公司南昌seo排名
  • 网站建设策划案怎么写如何自学动漫设计
  • 门户网站系统开发建设做网站建设很赚钱吗
  • 寻找网站建设_网站外包设计网站建设常州
  • 公司建设网站需要去哪报备泰安网络营销专业
  • 视频网站做游戏分发商融建设集团有限公司网站
  • 猎上网登陆官方网站百度免费云服务器
  • 响应式品牌网站设计wordpress标题省略
  • wap网站生成小程序网站不显示内容吗
  • 未来软件网站建设app企业网站模板
  • 网站建设书籍网站正在升级建设中代码
  • 嵌入式软件开发面试哈尔滨百度seo公司
  • 怎么用ps做简单网站首页西安自助建站公司
  • 浦项建设(中国)有限公司网站泉州网站设计师招聘
  • 有没有好的ppt网站做参考的建设网站沙井
  • 周口网站制作哪家好网站建设策划书目录
  • 专业的网站建设商家运维工程师
  • 网站建设 技术 哪些内容网站建设公司ejiew
  • 如何自学建网站wordpress菜单分级
  • 岚山区建设局网站wordpress 标签作用