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

Vue2.x核心技术与实战(一)

目录

一、Vue2.x

1.1 Vue快速上手

1.1.1 Vue概念

1.1.2 创建实例

1.1.3 插值表达式 { { }}

1.1.4 响应式特性

1.1.5 开发者工具

1.2 Vue指令

1.2.1 v-html

1.2.3 v-show / v-if

v-show

v-if

1.2.4 v-else / v-else-if

1.2.5 v-on

v-on 调用传参

1.2.6 v-bind

图片切换案例 - 波仔学习之旅

1.2.7 v-for

图书管理案例-小黑的书架

v-for 中的 key

v-for 中的 key - 不加 key

v-for 中的 key

1.2.8 v-model

1.3 综合案例-小黑记事本

1.4 指令补充

1.4.1 指令修饰符

1.4.2 v-bind 对于样式操作的增强

v-bind 对于样式控制的增强 - 操作class

案例:京东秒杀tab导航高亮

v-bind 对于样式控制的增强 - 操作style

1.4.3 v-model 应用于其他表单元素

1.5 computed计算属性

1.5.1 基础语法

1.5.2 computed 计算属性 VS methods 方法

1.5.3 完整写法

1.5.4 成绩案例

1.6 watch侦听器

1.6.1 基础语法

1.6.2 完整写法

1.7 综合案例 - 水果购物车

一、Vue2.x

1.1 Vue快速上手

1.1.1 Vue概念

Vue 是什么?

概念:Vue是一个用于  ①构建用户界面的  ②渐进式   ③框架

解释如下:

①构建用户界面的 :基于数据渲染出用户看到的页面

②渐进式:循序渐进   

Vue的两种使用方式:

①Vue核心包开发

  • 场景:局部模块改造

②Vue核心包 & Vue插件工程化开发

  • 场景:整站开发

③框架:一套完整的项目解决方案

优点:大大提升开发效率(70%↑)

缺点:需要理解记忆规则→官网


 

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

Vue3官网:https://cn.vuejs.org/

总结:

Vue是什么?

Vue是一个用于  构建用户界面  的  渐进式  框架

  1. 构建用户界面:基于数据动态渲染页面
  2. 渐进式:循序渐进的学习
  3. 框架:一套完整的项目解决方案,提升开发效率↑ (理解记忆规则)  规则→官网
     

1.1.2 创建实例

创建Vue实例,初始化渲染

<!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><!-- 创建Vue实例,初始化渲染1.准备容器(Vue所管理的范围)2.引包 (开发版本包 /生产版本包) 官网3.创建实例4.添加配置项=>完成渲染 --><div id="app"><h1>{{ msg }}</h1><a href="#">{{ count }}</a></div><!-- 引入的是开发版本包-包含完整的注释和警告 --><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>

总结:

创建Vue实例,初始化渲染的核心步骤:

  1. 准备容器
  2. 引包(官网) - 开发版本 / 生产版本
  3. 创建Vue实例 new Vue()
  4. 指定配置项 el data =>渲染数据

① el 指定挂载点,选择器指定控制的是哪个盒子

② data提供数据
 

1.1.3 插值表达式 { { }}

插值表达式是一种 Vue 的模板语法

1. 作用:利用表达式进行插值,渲染到页面中

表达式:是可以被求值的代码,JS引擎会将其计算出一个结果


 

2. 语法:{ { 表达式 }}

3. 注意点:

(1) 使用的数据必须存在(data)


 

(2) 支持的是表达式,而非语句,比如:if、for ...


 

(3) 不能在标签属性中使用 { {  }} 插值

<!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><!-- 插值表达式: Vue的一种模板语法作用:利用 表达式 进行插值渲染语法: {{ 表达式 }} 注意点:1.使用的数据要存在2.支持的表达式,不是语句  if   for 3.不能在标签属性中使用 {{  }}--><div id="app"><p>{{nickname}}</p><p>{{nickname.toUpperCase()}}</p><p>{{nickname + "你好"}}</p><p>{{age>=18 ? "成年":"未成年"}}</p><p>{{friend.name}}</p><p>{{friend.desc}}</p></div><!-- 引入的是开发版本包-包含完整的注释和警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: "#app",data: {nickname: "tony",age: 18,friend: {name: "小明",desc: "喜欢唱歌",},},});</script>
</body></html>

总结:

1. 插值表达式的作用是什么?

  • 利用表达式进行插值,将数据渲染页面中

2. 语法格式?

  • { { 表达式 }}

3. 插值表达式的注意点:

①使用的数据要存在(data)

②支持的是表达式,而非语句 if ... for

③不能在标签属性里面使用
 

1.1.4 响应式特性

Vue核心特性:响应式

我们已经掌握了基础的模板渲染,其实除了基本的模板渲染,Vue背后还做了大量工作。

比如:数据的响应式处理 → 响应式:数据变化,视图自动更新


 


数据改变,视图会自动更新

聚焦于数据 → 数据驱动视图

使用Vue开发,关注业务的核心逻辑,根据业务修改数据即可
 

总结:

1. 什么是响应式呢?

  • 数据改变,视图自动更新
  • 使用Vue开发→专注于业务核心逻辑即可

2. 如何访问或修改数据呢?

  • data中的数据,最终会被添加到实例上
  • ①访问数据:"实例.属性名"
  • ②修改数据:"实例.属性名"= "值"
     

1.1.5 开发者工具

安装Vue开发者工具:装插件调试Vue应用

(1)通过谷歌应用商店安装(国外网站)

(2)极简插件:下载→开发者模式→拖拽安装→插件详情允许访问文件

https://chrome.zzzmh.cn/index

打开 Vue 运行的页面,调试工具中 Vue栏,即可查看修改数据,进行调试。

1.2 Vue指令

Vue 会根据不同的【指令】,针对标签实现不同的【功能】

指令:带有 v-前缀 的 特殊 标签属性
 

1.2.1 v-html

作用:设置元素的 innerHTML

语法:v-html= "表达式"


 


总结:

1. 什么是Vue指令呢?

  • 指令就是带有 v-前缀 的特殊 属性,不同属性 对应 不同的功能
  • 学习不同指令 → 解决不同业务场景需求

2.如果需要动态解析标签,可以用哪个指令?语法?
v-html="表达式"→动态设置元素 innerHTML

1.2.3 v-show / v-if

v-show

作用:控制元素显示隐藏

语法:v-show= "表达式"  表达式值  true显示,false隐藏

原理:切换 display:none 控制显示隐藏

场景:频繁切换显示隐藏的场景



 

v-if

作用:控制元素显示隐藏(条件渲染)

语法:v-if="表达式"       表达式值true显示,false 隐藏

原理:基于条件判断,是否创建移除元素节点

场景:要么显示, 要么隐藏,不频繁切换的场景


总结:

  • v-show 底层原理:切换 CSS 的 display:none 来控制显示隐藏
  • v-if 底层原理:根据判断条件控制元素的 创建 和 移除
     

1.2.4 v-else / v-else-if

作用:辅助 v-if 进行判断渲染

语法:v-else     v-else-if = "表达式"

注意:需要紧挨着 v-if 一起使用


 


1.2.5 v-on

作用:注册事件 = 添加监听 + 提供处理逻辑

语法:v-on:事件名= "内联语句"    ② v-on:事件名= "methods中的函数名"

简写:@事件名


 

注意:methods函数内的 this指向Vue实例



v-on 调用传参


<!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><style>.box {border: 3px solid #000000;border-radius: 10px;padding: 20px;margin: 20px;width: 200px;}h3 {margin: 10px 0 20px 0;}p {margin: 20px;}</style>
</head><body><div id="app"><div class="box"><h3>小黑自动售货机</h3><but
http://www.dtcms.com/a/334532.html

相关文章:

  • 摩搭api 实现
  • 025 理解文件系统
  • 多机编队——(6)解决机器人跟踪过程中mpc控制转圈问题
  • 第四章 Linux实用操作
  • OpenJDK 17的C1和C2编译器实现中,方法返回前插入安全点(Safepoint Poll)的机制
  • 【LeetCode题解】LeetCode 35. 搜索插入位置
  • [Linux] Linux逻辑卷管理
  • 知识点汇总linuxC高级 -2系统命令压缩与链接
  • RK3568 NPU RKNN(三):RKNN-ToolKit2模型构建与推理
  • 【LeetCode】算法详解#13 ---回文链表
  • Vue 3.5重磅更新:响应式Props解构,让组件开发更简洁高效
  • [Linux] Linux交换空间管理 Linux系统启动原理
  • 慧穗云开放平台 CDK 开票对接
  • echart中x的0位置出现柱子宽度被裁掉一部分的问题
  • 技术日记2025年08月16日
  • 基于FPGA的实时图像处理系统(1)——SDRAM回环测试
  • python---异常处理
  • Redis知识整理
  • 【论文笔记】STORYWRITER: A Multi-Agent Framework for Long Story Generation
  • 云服务平台主流架构的相关知识体系剖析
  • ABM和强化学习-2015年全国大学生数学建模竞赛B题
  • 安卓11 12系统修改定制化_____修改系统 解锁system分区 去除data加密 自由删减系统应用
  • JetPack系列教程(七):Palette——让你的APP色彩“飞”起来!
  • sql链接的url中serverTimezone的作用
  • 【大模型微调系列-04】 神经网络基础与小项目实战
  • windows环境下使用vscode以及相关插件搭建c/c++的编译,调试环境
  • GIMP:功能强大的跨平台图像处理软件
  • 嵌入式硬件篇---电容本质
  • leetcodehot100 矩阵置零
  • Jenkins安装部署(Win11)和常见配置镜像加速