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

第一个Vue程序

第一个Vue程序

<body>
<!--view层 变成了一个模板-->
<div id="app">{{message}}
</div><!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.min.js"></script>
<script>var vm = new Vue({el:"#app",//Model :数据data:{message:"hello vue!"}})
</script>

1、什么是MVVM

​ MVVM (Model-View-ViewModel) 是一种软件架构设计模式,由微软WPF (用于替代WinForm,以前就是用这个技术开发桌面应用程序的)和Silverlight (类似于Java Applet,简单点说就是在浏览器上运行的WPF)的架构师Ken Cooper和Ted Peters 开发,是一种简化用户界面的事件驱动编程方式。由John Gossman (同样也是WPF和Silverlight的架构师)于2005年在他的博客上发表。MVVM 源自于经典的MVC (ModI-View-Controller) 模式。

​ MVVM的核心是ViewModel层,负责转换Model中的数据对象来让数据变得更容易管理和使用,其作用如下:

  • 该层向上与视图层进行双向数据绑定
  • 向下与Model层通过接口请求进行数据交互

在这里插入图片描述

2、为什么要使用MVVM

MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大好处:

  • 低耦合:视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的
    View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。

  • 可复用:你可以把一些视图逻辑放在一个ViewModel里面,让很多View重用这段视图逻辑。

  • **独立开发:**开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。

  • 可测试:界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。

3、Vue是MVVM的实现者

在这里插入图片描述

  • Model : 模型层,在这里表示JavaScript对象

  • View : 视图层,在这里表示DOM (HTML操作的元素)

  • ViewModel : 连接视图和数据的中间件,Vue.js就是MVVM中的ViewModel层的实现者在MVVM架构中,是不允许数据和视图直接通信的,只能通过ViewModel来通信,而ViewModel就是定义了一个Observer观察者

  • ViewModel 能够观察到数据的变化,并对视图对应的内容进行更新

  • ViewModel 能够监听到视图的变化,并能够通知数据发生改变

至此,我们就明白了,Vue.js 就是一个MVVM的实现者,他的核心就是实现了DOM监听数据绑定

4、下载地址

  • 开发版本

    • 包括完整的警告和调试模式:https://vuejs.org/js/vue.js
    • 删除了警告。30.96KB min+gzip :https://vuejs.org/js/vue.min.js
  • CDN

http://www.lryc.cn/news/45102.html

相关文章:

  • 2023上学期学习计划
  • 深入了解MySQL锁机制及应用场景
  • Java类和对象
  • aspnet053+sqlserver在线考试系统xns
  • 新一代大学英语(提高篇)
  • 阿里云OSS 203 Non-Authoritative Information问题解决
  • 【数据结构】你真的认识“”吗?它真的就只是“取地址”吗?或许你一直都在误解它。
  • [深入理解SSD 21] 固态硬盘GC机制 | GC 分类 | GC 过程 | GC 和 Trim 的关系
  • 大数据未来发展怎么样?
  • 【Linux】进程和线程间的区别与联系
  • 【C语言】变量和常量
  • 蓝桥杯-卡片换位(BFS)
  • 霍夫曼编码 | 贪心算法 2
  • async 与 await
  • MYSQL语句
  • C语言函数:内存函数memcpy()以及实现
  • ArcGIS基础:栅格分区转矢量再裁剪面图层【重分类】【栅格转面】
  • vue尚品汇商城项目-day02【11.对axios二次封装+12.接口统一管理】
  • 并发编程-2
  • 万字解析Linux内核调试之动态追踪
  • Spring Boot 各层作用与联系
  • 苦中作乐---竞赛刷题(15分-20分题库)
  • 超详细,多图,PVE安装以及简单设置教程(个人记录)
  • 茴子的写法:关于JAVA中的函数传递语法糖:lambda
  • 动态规划刷题记录(2)
  • 2023年广东省网络安全竞赛——Web 渗透测试解析(超级详细)
  • MI-SegNet阅读笔记
  • 十、MyBatis分页插件
  • EasyCVR平台国标GB28181协议设备接入时,可支持过滤通道类型
  • 玩转git的第1章节:git的理论以及操作规则