前端之Vue:Vue介绍、Vue特点、M-V-VM思想、组件化开发、单页面开发、版本、引入方式、简单使用

本文介绍了Vue.js,一个轻量级的渐进式框架,强调其易用性、灵活性和高效性。Vue的核心关注视图层,允许逐步采用,并具有丰富的生态系统。文章深入探讨了MVVM模式,解释了Model、View和ViewModel的关系及优势。此外,还讲解了Vue的组件化开发和单页面应用的实现,以及不同版本和引入方式。最后,通过简单的index.html示例展示了Vue的双向数据绑定功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 Vue介绍

Vue (读音/vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架

与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用

Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合

渐进式框架

可以一点一点地使用它,只用一部分,也可以整个工程都使用它

网站

二、 Vue特点

易用

  • 通过 HTML、CSS、JavaScript构建应用

灵活

  • 不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩。

高效

  • 20kB min+gzip 运行大小
  • 超快虚拟 DOM
  • 最省心的优化

三、 M-V-VM思想

① MVVM介绍

MVVM 是Model-View-ViewModel的缩写,它是一种基于前端开发的架构模式,是一种事件驱动编程方式

  • Model :vue对象的data属性里面的数据,这里的数据要显示到页面中
  • View :vue中数据要显示的HTML页面,在vue中,也称之为“视图模板” (HTML+CSS)
  • ViewModel:vue中编写代码时的vm对象,它是vue.js的核心,负责连接 View 和 Model数据的中转,保证视图和数据的一致性,所以前面代码中,data里面的数据被显示中p标签中就是vm对象自动完成的(双向数据绑定:JS中变量变了,HTML中数据也跟着改变)
    在这里插入图片描述

② MVVM的特性

  • 低耦合:视图(View)可以独立于Model变化和修改,1个ViewModel可以绑定到不同的View上,当View变化的时候 Model可以不变,当Model变化的时候 View也可以不变
  • 可复用:可以把一些视图逻辑放在1个ViewModel中,让很多View重用这端视图的逻辑(以此减少代码冗余)
  • 独立开发:开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计
  • 可测试:界面元素是比较难以测试的,而现在的测试可以针对ViewModel来编写

③ MVVM的逻辑

在这里插入图片描述

四、 组件化开发、单页面开发

组件化开发

类似于DTL中的include,每一个组件的内容都可以被替换和复用
在这里插入图片描述

单页面开发

只需要1个页面,结合组件化开发来替换页面中的内容

页面的切换只是组件的替换,页面还是只有1个index.html

五、 版本

1.X:使用得较少

2.X:普遍使用

3.X:刚出没多久,只有Beta版

六、 引入方式

① CDN的方式引入

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

② 下载后导入

其实就是直接在浏览器中打开https://cdn.jsdelivr.net/npm/vue/dist/vue.js,然后复制下来,创建一个js文件再粘贴进去

<script src="js/vue.js"></script>

七、 补充

解释型的语言是需要解释器的

js就是一门解释型语言,只不过js解释器被集成到了浏览器中

所以,在浏览器的Console中输入命令,就和在cmd中输入python后,进入交互式环境一样

nodejs:一门后端语言

把chrome的v8引擎(解释器),安装到操作系统之上

八、 简单使用

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue的简单使用</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
</head>
<body>

<div id="box">
    {{name}}
</div>

</body>
<script>
    let vm = new Vue({
        el: '#box', // 在box这个div中可以写 vue的语法
        data: {
            name: 'Hello World'
        }
    })
</script>
</html>

双向数据绑定测试

vm._data.name='darker'    // 修改js中变量的值

$('#box').text('hahah')    // 修改HTML的div中的值

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值