首页 > 其他分享 >Vue开发实战(02)-MVVM模式

Vue开发实战(02)-MVVM模式

时间:2023-06-08 22:37:04浏览次数:32  
标签:02 function Vue MVVM inputElem page init var Page

1 JQ实现待办任务列表

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>TodoList Jquery</title>
     <script src='jquery.js'></script>
 </head>
 <body>
 <div>
     <input id="input" type="text"/>
     <button id="btn">提交</button>
     <ul id="list"></ul>
 </div>
 
 <script>
     // 构造函数
     function Page() {
     }
 
     $.extend(Page.prototype, {
         init: function () {
             this.bindEvents()
         },
         bindEvents: function () {
             var btn = $('#btn');
             // 将点击事件绑定到提交按钮上
             // 并使用$.proxy函数确保函数在Page对象的上下文中执行
             btn.on('click', $.proxy(this.handleBtnClick, this))
         },
         // 在点击提交按钮时被调用。
         handleBtnClick: function () {
             var inputElem = $("#input");
             // 获取输入框中的值
             var inputValue = inputElem.val();
             var ulElem = $("#list");
             // 将其添加到列表中
             ulElem.append('<li>' + inputValue + '</li>');
             // 并清空输入框
             inputElem.val('');
         }
     })
     // 创建一个名为page的Page对象
     var page = new Page();
     // 并调用其init函数
     page.init();
 </script>
 </body>
 </html>

Vue开发实战(02)-MVVM模式_事件绑定

整个编程模式其实就符合 MVP。

古时候写前端:一个请求,一次接收。

Vue开发实战(02)-MVVM模式_html_02

随业务复杂,很多页面,就得多次请求更新了吗?还需要多页面交互的话,咋办?

Vue开发实战(02)-MVVM模式_事件绑定_03

又要处理业务逻辑,又要处理显示逻辑,产品需求一遍在编,咋办呢?

将显示逻辑委托给框架实现,工作流程就变成了:

Vue开发实战(02)-MVVM模式_事件绑定_04

因为显示逻辑都有框架处理了:

Vue开发实战(02)-MVVM模式_html_05


标签:02,function,Vue,MVVM,inputElem,page,init,var,Page
From: https://blog.51cto.com/JavaEdge/6443788

相关文章

  • 02-MyBatis-CRUD-配置文件、参数封装、mybatisX插件、动态sql, 简单的用注解开发
    文章目录MybatisCRUD练习1,配置文件实现CRUD1.1环境准备Debug01:别名mybatisx报错1.2查询所有数据1.2.1编写接口方法1.2.2编写SQL语句1.2.3编写测试方法1.2.4起别名解决上述问题1.2.5使用resultMap解决上述问题1.2.6小结1.3查询详情1.3.1编写接口方法1.3.2编写SQL语句......
  • 02-前端-javaScript
    文章目录JavaScript1,JavaScript简介2,JavaScript引入方式2.1内部脚本2.2外部脚本3,JavaScript基础语法3.1书写语法3.2输出语句3.3变量3.3.1全局变量var3.3.2局部变量let3.3.3常量const3.4数据类型3.5运算符3.5.1\==和===区别▲3.5.2类型转换3.6流程控制语句3.6.1if......
  • javaWeb核心02-Request&Response -(乱码处理、字符流、字节流、虚拟目录、请求转发、重
    文章目录Request&Response1,Request和Response的概述2,Request对象2.1Request继承体系2.2Request获取请求数据2.2.1获取请求行数据2.2.2获取请求头数据2.2.3获取请求体数据2.2.4获取请求参数的通用方式基于上述理论,request对象为我们提供了如下方法:★代码演示2.3IDEA快速创......
  • SpringBoot+Vue+Spring Cloud Alibaba 实现大型电商系统【分布式微服务实现】
    前言这篇博客主要记录的是谷粒商城项目的完整开发过程大家想看的话也可以去这里看看:笔记地址传送门后续还会继续维护这个笔记一、项目架构二、技术总和三、开发准备1、开发环境搭建2、工程初始化四、分布式基础篇(全栈开发篇)五、分布式高级篇(微服务架构篇)......
  • Vue知识沉淀
    为什么组件my-item的props是listCount,但传入时候用:list-count传入,而listCount与list-count不一致<!DOCTYPEhtml><htmllang="en"xmlns="http://www.w3.org/1999/xhtml"><head><metacharset="utf-8"/><title><......
  • visualstudio2022 ef6生成代码报错
    StartNotepadinadministratormode,andopenthefile(substitutingCommunityforProfessionalorEnterprisedependingonyourversion):C:\ProgramFiles\MicrosoftVisualStudio\2022\Community\Common7\IDE\Extensions\Microsoft\EntityFrameworkTo......
  • SONiC 202305 Release内容
    SONiC社区采用Github平台进行项目管理,Github平台不仅仅提供代码的托管服务,还能提供IsuueTracking,Releasemanagement等RequirementEngineering的功能。在GithubSONiC页面上选择Projects/SONiC202305Release以后,可以看到表格的形式显示的该Release计划的77个Issue的内容。到......
  • P8376 [APIO2022] 排列
    一种比较容易写的构造方案考虑直接二进制拆分,发现在原排列的基础上,在开头填上更大的数,方案数+1,在末尾上填上更大的数,方案数*2,直接按照填数从小到大顺序填入,长度为logk+popcount(k),期望得分91分1#include<bits/stdc++.h>23usingnamespacestd;45vector<int......
  • 2023年4月阅读笔记1
    为什么巴比伦塔会失败巴比伦塔的制造是一个神话故事,但是其中的道理却对今天人们的协作有着重要的启示。软件系统的开发完全通过计算机执行,为什么还是很少有远程协作的企业,这是因为远程协作很容易导致交流的缺失。大型的软件项目开发需要团队中的每个人能及时了解到整个团队在做些......
  • 2023年4月阅读笔记2
    未雨绸缪我们在实现功能时往往有很多思路,但是哪种思路能行得通并且最适合情况就需要我们进行试验性开发。试验性开发确实会造成精力的消耗,或许大量的测试方案最终还会被舍弃,但是我们必须这样做。实际上如果不进行方案的实验,正式的开发反而可能遭遇返工和混乱的拆补,会严重分散重新......