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

网站建设软文推广网站建设分金手指排名十四

网站建设软文推广,网站建设分金手指排名十四,微信商店小程序,工厂管理培训课程MVVM#xff08;Model-View-ViewModel#xff09;、MVC#xff08;Model-View-Controller#xff09;和MVP#xff08;Model-View-Presenter#xff09;是三种常见的软件架构模式#xff0c;它们在客户端应用开发中被广泛使用。每种模式都有其特定的设计理念和应用场景Model-View-ViewModel、MVCModel-View-Controller和MVPModel-View-Presenter是三种常见的软件架构模式它们在客户端应用开发中被广泛使用。每种模式都有其特定的设计理念和应用场景下面将详细介绍这三种模式的区别并通过示例来说明。 1. MVC (Model-View-Controller) 核心思想 Model负责数据的存储和业务逻辑。View负责展示数据用户界面。Controller负责处理用户输入更新模型和视图。 工作流程 用户与视图进行交互。视图将用户的输入传递给控制器。控制器根据输入调用模型的方法更新模型的状态。控制器通知视图更新以反映模型的变化。 优点 分离关注点使得代码结构清晰。便于维护和扩展。 缺点 对于复杂的UI控制器可能会变得臃肿。视图和控制器之间的耦合较高。 示例 假设我们有一个简单的待办事项应用 // Model class TodoModel {constructor() {this.todos [];}addTodo(todo) {this.todos.push(todo);}removeTodo(index) {this.todos.splice(index, 1);} }// View class TodoView {constructor(model, controller) {this.model model;this.controller controller;this.init();}init() {const addButton document.getElementById(addButton);addButton.addEventListener(click, () {const input document.getElementById(todoInput);this.controller.addTodo(input.value);input.value ;});const list document.getElementById(todoList);this.model.todos.forEach((todo, index) {const li document.createElement(li);li.textContent todo;const removeButton document.createElement(button);removeButton.textContent 删除;removeButton.addEventListener(click, () {this.controller.removeTodo(index);});li.appendChild(removeButton);list.appendChild(li);});}update() {const list document.getElementById(todoList);list.innerHTML ;this.model.todos.forEach((todo, index) {const li document.createElement(li);li.textContent todo;const removeButton document.createElement(button);removeButton.textContent 删除;removeButton.addEventListener(click, () {this.controller.removeTodo(index);});li.appendChild(removeButton);list.appendChild(li);});} }// Controller class TodoController {constructor(model, view) {this.model model;this.view view;}addTodo(todo) {this.model.addTodo(todo);this.view.update();}removeTodo(index) {this.model.removeTodo(index);this.view.update();} }const model new TodoModel(); const view new TodoView(model); const controller new TodoController(model, view); 2. MVP (Model-View-Presenter) 核心思想 Model负责数据的存储和业务逻辑。View负责展示数据用户界面。Presenter作为中间层处理用户输入更新模型并控制视图的显示。 工作流程 用户与视图进行交互。视图将用户的输入传递给Presenter。Presenter根据输入调用模型的方法更新模型的状态。Presenter更新视图以反映模型的变化。 优点 分离了视图和业务逻辑。测试更加容易。 缺点 Presenter可能变得复杂。视图和Presenter之间的接口需要仔细设计。 示例 继续上面的待办事项应用但这次使用MVP模式 // Model class TodoModel {constructor() {this.todos [];}addTodo(todo) {this.todos.push(todo);}removeTodo(index) {this.todos.splice(index, 1);}getTodos() {return this.todos;} }// View class TodoView {constructor(presenter) {this.presenter presenter;this.init();}init() {const addButton document.getElementById(addButton);addButton.addEventListener(click, () {const input document.getElementById(todoInput);this.presenter.addTodo(input.value);input.value ;});const list document.getElementById(todoList);this.renderTodos(this.presenter.getTodos());}renderTodos(todos) {const list document.getElementById(todoList);list.innerHTML ;todos.forEach((todo, index) {const li document.createElement(li);li.textContent todo;const removeButton document.createElement(button);removeButton.textContent 删除;removeButton.addEventListener(click, () {this.presenter.removeTodo(index);});li.appendChild(removeButton);list.appendChild(li);});} }// Presenter class TodoPresenter {constructor(view, model) {this.view view;this.model model;}addTodo(todo) {this.model.addTodo(todo);this.view.renderTodos(this.model.getTodos());}removeTodo(index) {this.model.removeTodo(index);this.view.renderTodos(this.model.getTodos());}getTodos() {return this.model.getTodos();} }const model new TodoModel(); const view new TodoView(); const presenter new TodoPresenter(view, model); view.presenter presenter; 3. MVVM (Model-View-ViewModel) 核心思想 Model负责数据的存储和业务逻辑。View负责展示数据用户界面。ViewModel作为中介者负责数据绑定、命令处理和状态管理。 工作流程 用户与视图进行交互。ViewModel监听视图的变化并更新模型。ViewModel监听模型的变化并更新视图。 优点 数据绑定机制简化了视图和模型之间的同步。降低了视图和模型之间的耦合。 缺点 可能会增加内存开销。复杂的数据绑定逻辑可能难以调试。 示例 继续上面的待办事项应用但这次使用MVVM模式使用Vue.js实现 !DOCTYPE html html langen headmeta charsetUTF-8titleVue MVVM示例/titlescript srchttps://cdn.jsdelivr.net/npm/vuenext/script /head bodydiv idapph1待办事项/h1input v-modelnewTodo placeholder添加新事项 keyup.enteraddTodoulli v-for(todo, index) in todos :keyindex{{ todo }}button clickremoveTodo(index)删除/button/li/ul/divscriptconst app Vue.createApp({data() {return {newTodo: ,todos: []};},methods: {addTodo() {if (this.newTodo.trim()) {this.todos.push(this.newTodo);this.newTodo ;}},removeTodo(index) {this.todos.splice(index, 1);}}});app.mount(#app);/script /body /html 总结 MVC适用于传统的Web应用尤其是服务器端渲染的应用。它通过控制器协调模型和视图之间的交互。MVP适用于需要高度测试性的应用特别是移动应用。它通过Presenter来分离视图和业务逻辑。MVVM适用于现代的单页应用SPA特别是使用JavaScript框架如Vue、Angular或React构建的应用。它通过数据绑定简化了视图和模型之间的同步。 选择哪种模式取决于具体的应用场景和需求。MVVM由于其简洁的数据绑定机制在现代前端开发中非常流行。
http://www.w-s-a.com/news/116200/

相关文章:

  • 网站建设要什么知识广州注册公司地址怎么解决
  • 自己可以做开奖网站吗wordpress和hexo
  • 成都网站关键词优化wordpress价格
  • 网站开发后端站建设 app开发网站
  • 毕业设计做网站好的想法开发网站代码量
  • 西宁网站建设排名wordpress的站点地址如何配置
  • 医院网站建设 价格app和网站开发的成本
  • 常见的网站开发工具山东建设厅官方网站李兴军
  • 二级院系网站建设情况做网站域名是什么意思
  • 网站开发双语辽宁省建设厅网站怎样下载表格
  • 网站后台密码怎么修改百度查重免费入口
  • 衡阳网站页面设计公司绍兴网站设计
  • 青岛手机建站多少钱做图表的网站 免费
  • 如何去建立和设计一个公司网站开封建设教育协会网站
  • 南充市住房和城乡建设局考试网站wordpress 下载模板站
  • 有没有单纯做旅游攻略的网站保定建站方案
  • 2017网站建设报价方案2022年企业所得税税率表一览
  • 可以做婚礼视频的网站有哪些工程公司管理制度
  • 做农产品网站需要做的准备中文手机网站设计案例
  • 福州做网站软件seo搜索优化专员招聘
  • 建站技术博客wordpress响应时间
  • 农业网站模板WordPress安徽省建设工程造价管理协会网站
  • 网站后台策划书破解版手游app平台
  • 宿迁网站建设介绍公司wordpress 文章 分类 页面
  • 建设通同类网站网站设计公司种类
  • 台州专业做网站网站可以个人做吗
  • 个人logo在线生成免费乐陵德州seo公司
  • 网站回答问题app怎么做专业定制网红柴火灶
  • 网站做的最好的公司行业网址大全
  • 内网怎么做网站服务器seo统计