Vue 介绍与体验

news/2024/10/4 20:37:39/文章来源:https://blog.csdn.net/CaptainDrake/article/details/142061905

Vue 介绍与体验

vue 简介

Sum:

概念:Vue是一套用于构建 用户界面 的 渐进式前端框架。

  • 理解与表达:

    从两个角度解读,

    构建用户界面:通过指令、数据驱动视图、事件绑定等方式构建用户界面

    前端框架:提供一整套构建用户界面的解决方案,包括vue、vue-router、vuex、组件库等

    渐进式概念:可以先针对项目某个模块先用Vue开发,然后再逐步用Vue去开发更多模块。

vue 特性:主要体现在两方面:① 数据驱动视图 ② 双向数据绑定

vue 模型:MVVM

  • 理解与表达:

    vue的特性是数据驱动视图和双向数据绑定,其中MVVM是vue实现二者的核心原理,它把每个HTML页面都拆分成了View、ViewModel、Model三个部分,其中View 表示当前页面所渲染的 DOM 结构。Model 表示当前页面渲染时所依赖的数据源。ViewModel 表示 vue 的实例,它是 MVVM 的核心。

    ViewModel 作为 MVVM 的核心,是它把当前页面的数据源(Model)和页面的结构(View)连接在了一起。

    Untitled

    当数据源发生变化时,会被 ViewModel 监听到,VM 会根据最新的数据源自动更新页面的结构

    当表单元素的值发生变化时,也会被 VM 监听到,VM 会把变化过后最新的值自动同步到 Model 数据源中

  • 理解与表达:




vue 概念

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

关键词1:构建用户界面

概念:基于数据动态渲染页面

关键词2:框架

概念:一整套的项目解决方案,提升开发效率

Vue提供了构建用户界面的一整套解决方案(俗称 vue 全家桶):

  • vue(核心库)
  • vue-router(路由方案)
  • vuex(状态管理方案)
  • vue 组件库(快速搭建页面 UI 效果的方案)

以及辅助 vue 项目开发的一系列工具:

  • vue-cli(npm 全局包:一键生成工程化的 vue 项目 - 基于 webpack、大而全)
  • vite(npm 全局包:一键生成工程化的 vue 项目 - 小而巧)
  • vue-devtools(浏览器插件:辅助调试的工具)
  • vetur(vscode 插件:提供语法高亮和智能提示)

提到框架,不得不提一下库。

  • 库,类似工具箱,是一堆方法的集合,比如 axios、lodash、echarts等
  • 框架,是一套完整的解决方案,实现了大部分功能,我们只需要按照一定的规则去编码即可。

关键词:渐进式

概念:可以先针对项目某个模块先用Vue开发,然后再逐步用Vue去开发更多模块。

Vue的两种开发方式:

  1. Vue核心包开发场景:局部模块改造
  2. Vue核心包&Vue插件&工程化场景:整站开发

Untitled



vue 特性

vue 框架的特性,主要体现在两方面:① 数据驱动视图 ② 双向数据绑定

数据驱动视图

页面中如果使用 Vue,Vue 会监听数据的变化,从而自动重新渲染页面的结构。示意图如下:

image.png

好处:当页面数据发生变化时,页面会自动重新渲染!

注意:数据驱动视图是单向的数据绑定。


双向数据绑定

在填写表单时,双向数据绑定可以辅助开发者在不操作 DOM 的前提下,自动把用户填写的内容同步到数据源中。示意图如下:

image.png

好处:开发者不再需要手动操作 DOM 元素,来获取表单元素最新的值!



MVC和MVVM模型

MVC和MVVM都是一种软件的体系结构

**概念:**MVC是Model – View –Controller的简称,是在前期流行的框架架构模式,比如iOS、前端;

比如 Controller 从 Server 获取数据,然后传递给 Model,Model 将渲染后的结果传递给 Control,最后渲染到 View上

image.png

前端的MVC:比如我们就可以把 Html 看作 View,JS看作 Controller,然后通过 JS 从服务器获取数据,交给 Model,最后 Model 将渲染后的结果传递给 Control,最后渲染到 View上

image.png


MVVM是Model-View-ViewModel的简称,是目前非常流行的架构模式;

**概念:**MVVM 是 vue 实现数据驱动视图和双向数据绑定的核心原理。以下是对关键概念的理解:

  • Model 表示当前页面渲染时所依赖的数据源。
  • View 表示当前页面所渲染的 DOM 结构。
  • ViewModel 表示 vue 的实例,它是 MVVM 的核心。

它把每个 HTML 页面都拆分成了如下三个部分:

image.png

MVVM 的工作原理:

ViewModel 作为 MVVM 的核心,是它把当前页面的数据源(Model)和页面的结构(View)连接在了一起。

Untitled

当数据源发生变化时,会被 ViewModel 监听到,VM 会根据最新的数据源自动更新页面的结构

当表单元素的值发生变化时,也会被 VM 监听到,VM 会把变化过后最新的值自动同步到 Model 数据源中

结合计数器案例理解:

image.png



vue 版本

当前,vue 共有 3 个大版本,其中:

2.x 版本的 vue 是目前企业级项目开发中的主流版本

3.x 版本的 vue 于 2020-09-19 发布,生态还不完善,尚未在企业级项目开发中普及和推广

1.x 版本的 vue 几乎被淘汰,不再建议学习与使用

vue3.x 和 vue2.x 版本的对比:

vue2.x 中绝大多数的 API 与特性,在 vue3.x 中同样支持。同时,vue3.x 中还新增了 3.x 所特有的功能、并废弃了某些 2.x 中的旧功能:

新增的功能例如:

组合式 API、多根节点组件、更好的 TypeScript 支持等

废弃的旧功能如下:

过滤器、不再支持 o n , on, onoff 和 $once 实例方法等

详细的变更信息,请参考官方文档给出的迁移指南:

https://v3.vuejs.org/guide/migration/introduction.html




Vue 的基本使用

Vue 安装与使用

方式一:在页面中通过CDN的方式来引入;

<script src="https://unpkg.com/vue@next"></script>

Case:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"></div><script src="https://unpkg.com/vue@next"></script><script>const app = Vue.createApp({template: `<h2>Hello World</h2>`})app.mount("#app")</script>
</body>
</html>

方式二:下载Vue的JavaScript文件,并且自己手动引入;

<html lang="en">
<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><div id="app"></div><script src="./lib/vue.js"></script><script>// 1.创建appconst app = Vue.createApp({template: `<h1>Hello Vue</h1>`})// 2.挂载appapp.mount("#app")</script></body>
</html>

方式三:通过npm包管理工具安装使用它(webpack笔记里);


方式四:直接通过Vue CLI创建项目,并且使用它;



Vue2 安装与使用(可选)

基本使用步骤

  1. 引包(官网) — 开发版本/生产版本
  2. 创建Vue实例 new Vue()
  3. 指定配置项,渲染数据
    1. el:指定挂载点
    2. data提供数据

官网引包(直接用):

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

注意:开发版本包含完整的警告和调试模式;生产版本删除了警告,体积更小。

案例

<!DOCTYPE html>
<html lang="en">
<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>
<!-- 1-Vue所管理的范围 -->
<div id="app"><!-- 这里将来会编写一些用于渲染的代码逻辑 --><h1>{{ msg }}</h1><a href="#">{{ count }}</a>
</div><!-- 2-引入的是开发版本包 - 包含完整的注释和警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>// 一旦引入 VueJS核心包,在全局环境,就有了 Vue 构造函数const app = new Vue({// 通过 el 配置选择器,指定 Vue 管理的是哪个盒子el: '#app',// 通过 data 提供数据data: {msg: 'Hello 传智播客',count: 666}})</script></body>
</html>

Vue2网址:https://v2.cn.vuejs.org/




Vue 的调试工具

安装 vue-devtools 调试工具:

vue 官方提供的 vue-devtools 调试工具,能够方便开发者对 vue 项目进行调试与开发。

Chrome 浏览器在线安装 vue-devtools

vue 2.x 调试工具:
https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd

vue 3.x 调试工具:
https://chrome.google.com/webstore/detail/vuejs-devtools/ljjemllljcmogpfapbkkighbhhppjdbg

注意:vue2 和 vue3 的浏览器调试工具不能交叉使用

配置 Chrome 浏览器中的 vue-devtools:

点击 Chrome 浏览器右上角的 按钮,选择更多工具 -> 扩展程序 -> Vue.js devtools 详细信息,并勾选如下的两个选项:

image.png

注意:修改完配置项,须重启浏览器才能生效!

使用 vue-devtools 调试 vue 页面:

在浏览器中访问一个使用了 vue 的页面,打开浏览器的开发者工具,切换到 Vue 面板,即可使用 vue-devtools调试当前的页面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ldbm.cn/p/440148.html

如若内容造成侵权/违法违规/事实不符,请联系编程新知网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 主从复制、切片集群

一、主从复制 1、主从关系 都说的 Redis 具有高可靠性&#xff0c;这里有两层含义&#xff1a;一是数据尽量少丢失&#xff0c;二是服务尽量少中断。AOF 和 RDB 保证了前者&#xff0c;而对于后者&#xff0c;Redis 的做法就是将一份数据同时保存在多个实例上。为了保证数据一致…

提升交易成功率:三重滤网交易系统详解

经验丰富的交易者往往拥有一套个性化的交易系统&#xff0c;其系统通过明确的交易规则和策略&#xff0c;帮助他们更有效地管理风险&#xff0c;并借助量化交易行为与控制心态的手段&#xff0c;提升交易的效率和成功率。在众多交易系统中&#xff0c;有一种使用三重筛选方式来…

【云原生】docker 部署 Doris 数据库使用详解

目录 一、前言 二、数据分析概述 2.1 什么是数据分析 2.2 数据分析目的和意义 2.3 数据分析常用的技术和工具 2.3.1 编程语言 2.3.2 数据处理和分析库 2.3.3 数据可视化工具 2.3.4 数据库系统 2.3.5大数据处理框架 2.3.6 云服务和平台 2.3.7 其他工具 三、Doris介绍…

java编辑器——IntelliJ IDEA

java编辑器有两种选择——IntelliJ IDEA和VsCode。其中IntelliJ IDEA现在是企业用的比较多的&#xff0c;是专门为java设计的&#xff0c;而VsCode则是通过插件来实现Java编辑的。 1.IntelliJ IDEA 官网下载链接&#xff1a;https://www.jetbrains.com/idea/ 注意选择社区版…

CSS之我不会

非常推荐html-css学习视频&#xff1a;尚硅谷html-css 一、选择器 作用&#xff1a;选择页面上的某一个后者某一类元素 基本选择器 1.标签选择器 格式&#xff1a;标签{} <h1>666</h1><style>h1{css语法} </style>2.类选择器 格式&#xff1a;.类…

AI 狂潮:引领未来变革,就业格局大洗牌

在科技飞速发展的今天&#xff0c;AI&#xff08;人工智能&#xff09;无疑是最受瞩目的领域之一。它正以惊人的速度改变着我们的生活&#xff0c;那么&#xff0c;AI 的未来发展趋势究竟会走向何方呢&#xff1f; 一、AI 在各个领域的深度融合 医疗领域 AI 在医疗领域的应用已…

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接&#xff1a;PF-Net PF-Net &#xff08;Point Fractal Network for 3D Point Cloud Completion&#xff09;是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑&#xff0c;都是采用GAN模型的思想来进行补全…

电力系统中的A类在线监测装置—APView400

随着电力系统的日益复杂和人们对电能质量要求的提高&#xff0c;电能质量在线监测装置在电力系统中得到广泛应用。目前&#xff0c;市场上的在线监测装置主要分为A类和B类两种类型&#xff0c;A类和B类在线监测装置主要区别在于应用场景、技术参数、通讯协议和扩展性。选择时应…

u盘数据恢复篇:U盘损坏怎么恢复里面的数据?6种方法即刻恢复

u盘里误删的文件去哪了&#xff1f;什么数据恢复的方法最好&#xff1f;今天我要和大家分享一些关于如何恢复损坏U盘中的数据的方法。U盘是我们日常生活中经常使用的便携存储设备&#xff0c;但是有时候因为各种原因&#xff0c;比如意外删除、格式化、物理损坏等&#xff0c;会…

2024全开源彩虹晴天多功能系统源码/知识付费系统/虚拟商城系统 完美可用带教程

源码简介&#xff1a; 2024最新彩虹晴天多功能系统源码&#xff0c;知识付费虚拟商城&#xff0c;完美可用&#xff0c;无需授权、国内外服务器皆可搭建、无论是不是备案域名也都可以部署、可以商业运营。 这个源码实用&#xff0c;它不仅完美可用&#xff0c;而且完全免F&am…

缺陷就是Bug?对了,但没完全对……

我叫缺陷&#xff0c;从被创建至关闭&#xff0c;到最后做缺陷分析&#xff0c;这是我的完整生命周期。我的整个生命周期贯穿着整个项目的项目周期&#xff0c;因此&#xff0c;掌握我的生命周期&#xff0c;不止是测试人员必修的课程&#xff0c;也是测试人员的灵魂。 缺陷的…

Error mongodb connect: 使用Mongoose连不上mongodb官方数据库

起因 使用mongoose官方文档的connect连Mongodb cloud免费数据库&#xff0c;始终连不上 await mongoose.connect(mongodb://127.0.0.1:27017/test);就一句代码&#xff0c;一个api&#xff0c;一个url多简单。死活连不上&#xff0c;困扰了我好久。 原本一开始我没有用mongoo…

【项目功能扩展】在线网站 -用户管理功能(用户注册登录修改等、利用cookie存储用户会话状态)

文章目录 0. 前言开发环境 & 涉及技术 1. 宏观结构2. 后端部分① sqlite 管理类② user 管理类 3. 前端部分&#xff08;与后端交互&#xff09;① 登录② 注册③ 查看登录用户的信息④ 更新用户信息⑤ 登出用户 & 注销用户注意 效果演示 0. 前言 源码链接&#xff1a…

Patlibc———更快捷的更换libc

起初是为了简化做pwn题目时&#xff0c;来回更换libc的麻烦&#xff0c;为了简化命令&#xff0c;弄了一个小脚本&#xff0c;可以加入到/usr/local/bin中&#xff0c;当作一个快捷指令&#x1f522; 这个写在了tools库&#xff08;git clone https://github.com/CH13hh/tools…

ueditor抓取图片

在ueditor.all.js文件中 修改catchremoteimage方法 原来的: 修改后: function catchremoteimage(imgs, callbacks) { //创建一个请求var oReq = new XMLHttpRequest() //获取请求地址前缀,根据自身项目获取const baseURL = http://uat.********* //url为请求地址根路径+具…

C语言小游戏--贪吃蛇实现

C语言小游戏--贪吃蛇实现 1.游戏实现背景2.Win32 API介绍2.1什么是Win32 API2.2控制台程序(Console)2.3控制台屏幕的坐标COORD2.4GetStdHandle2.4.1函数语法2.4.2函数的使用 2.5GetConsoleCursorInfo2.5.1函数语法2.5.2函数的使用 2.6CONSOLE_CURSOR_INFO2.6.1结构体结构2.6.2结…

【自考zt】【软件工程】【21.10】

关键字&#xff1a; 软件需求基本性质、软件系统需求挑战、耦合&#xff08;高内容&#xff0c;低无直接&#xff09;、内聚&#xff08;初始化时间&#xff09;、uml包、rup边界类、测试首要目标、单元测试最后工作、性能需求 软件开发本质、软件需求规约三种风格、提炼、用…

原生 iOS 引入 Flutter 报错 kernel_blob.bin 找不到

情况 在一次原生 iOS 项目中引入 Flutter 的过程中&#xff0c;在模拟器中运行出现报错&#xff1a; 未能打开文件“kernel_blob.bin”&#xff0c;因为它不存在。 如下图&#xff1a; 模拟器中一片黑 原因&解决方案 这个是因为 Flutter 的打包 iOS framework 命令中…

gird布局《个人觉得非常好用》

一、相对于flex布局 &#xff08;1&#xff09;优点&#xff1a;gird布局&#xff08;适用于二维布局的场景更加灵活&#xff09;&#xff0c;flex&#xff08;适用于一维布局的场景更加灵活&#xff09; 二、代码示例 <!DOCTYPE html> <html lang"en">…

C#进阶-ASP.NET实现可以缩放和旋转的图片预览页

本文详细介绍了如何在ASP.NET WebForms中实现一个功能丰富的图片预览页面。通过结合HTML、CSS和JavaScript&#xff0c;用户可以方便地对图片进行放大、缩小以及旋转操作。文章从页面的基本布局开始&#xff0c;逐步讲解了如何设置图片展示区、添加控制按钮、编写CSS样式以及实…