Vue知识学习

news2024/11/15 10:37:30

Vue 是什么?

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

Vue 的两种使用方式:

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

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

1.准备容器 2.引包(官网) - 开发版本/生产版本 3.创建 Vue 实例new Vue() 4.指定配置项el data =>渲染数据 ① el指定挂载点,选择器指定控制的是哪个盒子 ② data 提供数据

<div id="app">
<!-- 这里将来会编写一些用于渲染的代码逻辑 -->
<h1>{{ msg }}</h1>
{{ count }}</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}
}

插值表达式 {{ }}

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

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

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

money +100  
money - 100 
money* 10   
money / 10  
price >= 100 ? '真贵’:'还行'    
obj.name    
arr[0]  
fn( )   
obj.fn()

注意点:

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

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

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

<p> title="{{ username }}">我是p标签</p>//这是错的。

响应式

1.什么是响应式呢?

数据改变,视图自动更新(网页上的数据表示改变) 使用 Vue 开发→专注于业务核心逻辑 即可

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

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

Vue 指令

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

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

v-html

作用:设置元素的innerHTML

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

<div v-html="str"></div>

v-show

作用:控制元素显示隐藏

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

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

v-if

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

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

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

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

与v-show不同的是非隐藏,是消失。

v-else、v-else-if

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

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

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

<p v-if="score >= 90">成绩评定A:奖励电脑一台</p >
<p v-else-if="score >= 70">成绩评定B:奖励周末</p >
<p v-else-if="score >= 60">成绩评定C:奖励零食</p >
<p v-else>成绩评定D:惩罚一周不能玩手机</p >

v-on

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

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

简写: @事件名

<button v-on:click="count++">按钮</button>
<button @click="count++">按钮</button>=
<button @click="fn">-</button>
​
const app = new vue({   
el: '#app',
data:{  
// 提供数据
count: 100
}
methods: {  
// 提供处理逻辑函数
 fn () {
 console.log('提供逻辑代码')
 }
}
})

v-on 调用传参

<button @click=' fn(参数1,参数2)"> 按钮</button>
const app = new vue({
el: '#app', 
methods:{
fn (a, b) {
console.Iog('这是一个fn函数')}
}
})

v-bind

作用:动态的设置html的标签属性→ src url title ...

语法:v-bind:属性名="表达式"

注意:

简写形式 :属性名="表达式"

<div id="app">
<img v-bind:src="url"></div>
const app = new vue({ 
el: '#app', 
data: {
url:'图片路径'
}
})

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

语法:class = "对象/数组"

1.对象 → 键就是类名,值是布尔值。如果值为true,有这个类,否则没有这个类

<div class="box" :class="{ 类名1:布尔值,类名2:布尔值}"></div>

适用场景:一个类名,来回切换

2.数组 → 数组中所有的类,都会添加到盒子上,本质就是一个 class 列表

<div class="box" :class="[ 类名1,类名2,类名3 ]"></div>

适用场景:批量添加或删除类

<div class="box" :class="{ pink: true,rbig:true }">黑马程序员</div>
<div class="box" :class="['pink', 'big']">黑马程序员</div>

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

语法 :style = "样式对象"

<div class="box" :style="{ CsS属性名1:CSS属性值,CSS属性名2:CSS属性值}"></div>

适用场景:某个具体属性的动态设置

v-for

作用: 基于数据循环,多次渲染整个元素→数组、对象、数字...

遍历数组语法:

v-for = "(item, index) in 数组"

item 每一项,index 下标

可以省略index:

v-for= "item in 数组"

v-for 中的 key

key作用:给元素添加的唯一标识。

不加 key时,v-for 的默认行为会尝试原地修改元素(就地复用)

注意点:

  1. key 的值只能是字符串 或 数字类型

  2. key 的值必须具有唯一性

  3. 推荐使用 id 作为key(唯一),不推荐使用index作为key(会变化,不对应)

<li v-for="(item, index) in xxx" :key="唯一值">

v-model

作用: 给 表单元素 使用,双向数据绑定→可以快速获取 或 设置表单元素内容 ①数据变化→视图自动更新 ②视图变化→数据自动更新

语法:v-model='变量'

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

常见的表单元素都可以用v-model绑定关联→快速 获取 或 设置 表单元素的值

它会根据控件类型自动选取正确的方法来更新元素

输入框 input:text →value 文本域 textarea →value 复选框input:checkbox→ checked 单选框input:radio → checked 下拉菜单 select →value ...

前置理解:
1. name: 给单选框加上name属性可以分组→同一组互相会互斥
2.value: 给单选框加上value属性,用于提交给后台的数据结合 Vue 使用→v-model
性别:
<input v-model="gender" type="radio" name="gender" value="1">男
<input v-model="gender" type="radio" name="gender" value="2">女
前置理解:
1. option 需要设置 value 值,提交给后台
2. select 的 value 值,关联了选中的option 的 value 值结合 Vue 使用→ v-model 
所在城市:
<select v-model="cityId">
<option value="101">北京<ioption>
<option value="102">上海</option>
<option value="103">成都</option>
<option value="104">南京</option>

指令修饰符

通过"."指明一些指令 后缀,不同后缀封装了不同的处理操作→简化代码

①按键修饰符

@keyup.enter →键盘回车监听

②v-model修饰符

v-model.trim →去除首尾空格 v-model.number→转数字

③事件修饰符

@事件名.stop→阻止冒泡 @事件名.prevent →阻止默认行为

计算属性

概念:基于现有的数据,计算出来的新属性。依赖的数据变化,自动重新计算。

语法:

①声明在computed配置项中,一个计算属性对应一个函数

②使用起来和普通属性一样使用{{计算属性名}}

computed: {
计算属性名(){
基于现有数据,编写求值逻辑 return 结果}
}

computed 计算属性 vs methods 方法

computed 计算属性:

作用:封装了一段对于数据的处理,求得一个结果。

缓存特性(提升性能):

语法: 计算属性会对计算出来的结果缓存,再次使用直接读取缓存,

①写在computed 配置项中 依赖项变化了,会自动重新计算→并再次缓存 ②作为属性,直接使用→this.计算属性 {{计算属性 }}

methods 方法:

作用:给实例提供一个方法,调用以处理业务逻辑。

语法:

①写在methods 配置项中 ②作为方法,需要调用→ this.方法名() {{ 方法名()}} @事件名="方法名"

计算属性完整写法

计算属性默认的简写,只能读取访问,不能"修改"。

如果要"修改"→ 需要写计算属性的完整写法。

watch 侦听器(监视器)

作用:监视数据变化,执行一些业务逻辑 或异步操作。

语法:

①简单写法→ 简单类型数据,直接监视

data: { 
    words:'苹果', 
obj: {
    words:'苹果'  
    }
},
watch: {
// 该方法会在数据变化时,触发执行  
数据属性名(newValue,oldValue){   
一些业务逻辑 或异步操作。
},
'对象.属性名’(newValue, oldValue) {一些业务逻辑或异步操作。
}

② 完整写法→添加额外配置项

(1) deep: true对复杂类型深度监视

(2) immediate: true 初始化立刻执行一次handler方法

data: { 
    obj: {  
    words:'苹果', 
    ang:'italy'
    },
},
watch: {// watch完整写法    
数据属性名:{ 
deep: true, // 深度监视 
immediate: true,// 是否立刻执行一次handler handler (newValue) { 
console.log(newValue)
}}}

Vue 生命周期

Vue生命周期:一个Vue实例从创建 到销毁的整个过程。

Vue 生命周期函数(钩子函数) Vue生命周期过程中,会自动运行一些函数,被称为【生命周期钩子】→让开发者可以在【特定阶段】运行自己的代码。

created: 响应式数据准备好了,可以开始发送初始化渲染请求。 mounted: 模板渲染完成,可以开始操作DOM了。

ECharts

  1. 引入 ECharts 库:在 HTML 文件中引入 ECharts 的库文件,可以通过 CDN 或者下载本地文件的方式引入。示例代码如下:

<script src="https://cdn.jsdelivr.net/npm/echarts@5.5.0/dist/echarts.min.js"></script>
  1. 准备一个具有固定大小的 DOM 容器用于放置图表,示例代码如下:

<div id="chart" style="width: 600px; height: 400px;"></div>
  1. 初始化 ECharts 实例:在 JavaScript 代码中初始化 ECharts 实例,并将其与之前准备好的 DOM 容器关联。示例代码如下:

var myChart = echarts.init(document.getElementById('chart'));
  1. 配置图表选项:根据需求配置图表的数据和样式,例如设置标题、图例、数据系列等。示例代码如下:

var option = {
    title: {
        text: '示例图表标题'
    },
    xAxis: {
        type: 'category',
        data: ['A', 'B', 'C', 'D', 'E', 'F']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [10, 20, 30, 40, 50, 60],
        type: 'bar'
    }]
};
​
  1. 渲染图表:将配置好的选项应用到 ECharts 实例中,并渲染出图表。示例代码如下:

myChart.setOption(option);

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哪些软件可以把试卷照片转换成电子版?试试这些软件

哪些软件可以把试卷照片转换成电子版&#xff1f;在数字化时代&#xff0c;纸质试卷的保存和传输都显得不太方便。为了解决这个问题&#xff0c;我们可以将试卷照片转换成电子版。下面&#xff0c;我将为大家介绍5款可以轻松实现这一功能的软件&#xff0c;让你轻松应对各种试卷…

吸虫塔的工作原理是什么?

吸虫塔虫情智能测报分析系统是一款专门用于长期动态监测蚜虫等小型迁飞性害虫的大型植保设备&#xff0c;由装置上方的空气动力装置、上下两层远红外虫体处理装置、高清图像采集装置、虫体收集装置等部分组成。昆虫在经由设备上方的吸风装置后会被吸入设备内部&#xff0c;上下…

【超实用!游戏主程必须掌握的必杀技!】

超实用&#xff01;游戏主程必须掌握的必杀技&#xff01; 大家有没有发现&#xff1f;以上问题都存在共性&#xff1a;那就是跨部门的沟通与协作&#xff0c;这是一个必须高度重视的问题。正是因为这些问题的存在&#xff0c;造成初入职场的焦虑和不适应。 那么产生这些问题的…

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(1)搭建一个机器学习模型

今天学习的是&#xff0c;如何搭建一个机器学习模型。 主要有以上的步骤&#xff1a; 原始数据采集特征工程 数据预处理特征提取特征转换&#xff08;构造&#xff09;预测识别&#xff08;模型训练和测试&#xff09; 在实际工作中&#xff0c;特征比模型更重要。 数据和特征…

01_02_mysql06_(视图-存储过程-函数(变量、流程控制与游标)-触发器)

视图 使用 视图一方面可以帮我们使用表的一部分而不是所有的表&#xff0c;另一方面也可以针对不同的用户制定不同的查询视图。比如&#xff0c;针对一个公司的销售人员&#xff0c;我们只想给他看部分数据&#xff0c;而某些特殊的数据&#xff0c;比如采购的价格&#xff0…

flink 任务提交流程源码解析

flinkjob 提交流程 任务启动流程图1客户端的工作内容1.1解析命令1.2 执行用户代码 2集群工作内容2.2启动JobManager和 ResourceManager2.3 申请资源 启动 taskmanager 3分配任务3.1 资源计算3.2 分发任务 4 Task 任务调度执行图5 任务提交过程总结 任务启动流程图 可以先简单看…

【Vue3】toRefs和toRef在reactive中的一些应用

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

如何在debian上实现一键恢复操作系统?

在Debian或任何其他Linux发行版上实现一键恢复操作系统&#xff0c;需要创建一个系统镜像或快照&#xff0c;并设置一个简单的方法来从该镜像恢复。以下是创建和恢复系统的基本步骤&#xff1a; 1. 创建系统镜像&#xff1a; 使用像dd&#xff0c;rsync或专门的备份工具&#…

详细分析UML的10种图(全)

目录 前言1. 基本知识2. 结构图2.1 类图2.2 对象图2.3 组件图2.4 部署图2.5 包图 3. 行为图3.1 用例图3.2 活动图3.3 状态图 4. 行为图4.1 顺序图4.2 协作图 前言 在软考高级中常见的一种题型&#xff0c;对此补充这方面的知识&#xff0c;并将其归入软考的专栏 1. 基本知识 …

全网最最最详细DataEase源码Docker方式部署教程

1.源码获取 有条件的小伙伴可以使用GitHub方式获取&#xff0c;要是没有条件的小伙伴可以去码云上面获取也是一样的&#xff0c;或者可以联系博主&#xff0c;博主手把手教学~ GitHub地址 Gitee地址 2.配置源码信息 1.配置单机版的配置文件中的数据库信息 2.下载前端的依赖包…

顺序表经典算法及其相关思考

27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 思路一 利用顺序表中的SLDestroy函数的思想&#xff0c;遇到等于val值的就挪动 思路二 双指针法&#xff1a;不停的将和val不相等的数字往前放。此时的des更像一个空数组&#xff0c;里面存放的都是和val不相等、能够存…

java面试JVM虚拟机篇

1 JVM组成 1.1 JVM由那些部分组成&#xff0c;运行流程是什么&#xff1f; 难易程度&#xff1a;☆☆☆ 出现频率&#xff1a;☆☆☆☆ JVM是什么 Java Virtual Machine Java程序的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 好处&#xff1a; 一次编写&a…

常见消息中间件

ActiveMQ 我们先看ActiveMQ。其实一般早些的项目需要引入消息中间件&#xff0c;都是使用的这个MQ&#xff0c;但是现在用的确实不多了&#xff0c;说白了就是有些过时了。我们去它的官网看一看&#xff0c;你会发现官网已经不活跃了&#xff0c;好久才会更新一次。 它的单机吞…

Unity Meta XR SDK 快捷配置开发工具【Building Block/Quick Action/OVRCameraRigInteraction】

文章目录 &#x1f4d5;教程说明&#x1f4d5;Building Block&#x1f4d5;Quick Action&#x1f4d5;OVRCameraRigInteraction 此教程相关的详细教案&#xff0c;文档&#xff0c;思维导图和工程文件会放入 Spatial XR 社区。这是一个高质量 XR 社区&#xff0c;博主目前在内…

redis在go语言中的使用

redis在go语言中的使用 以下说明以读者有redis基础的前提下进行 未学习redis的可以到b站1小时浅学redis了解大概&#xff0c;学会如何使用 【GeekHour】一小时Redis教程_哔哩哔哩_bilibili 以下开发环境以windows为测试环境&#xff0c;旨在练习redis在go语言中的使用 red…

Java 面向对象进阶 14 抽象类和抽象方法(黑马)

抽象类不能实例化&#xff08;创建对象&#xff09;&#xff1a; 抽象类中不一定有抽象方法&#xff1a; 有抽象方法的类一定是抽象类&#xff1a; 可以有构造方法&#xff1a;&#xff08;作用&#xff1a;在创建子类对象时&#xff0c;给属性进行赋值的&#xff09; Perso…

Springboot展示本地图片

1. 创建本地图片目录 在resources下创建目录static/image 2. 修改配置文件 在application.yml中新增 spring:mvc:static-path-pattern: /** 3. 编写拦截器类&#xff0c;继承自HandlerInterceptor 重写preHandle方法 public boolean preHandle(HttpServletRequest request…

Uniapp真机调试没有检测到设备,请插入设备或启动模拟器后刷新再试

最近用HbuilderX开发遇到了一个问题&#xff0c;之前插上手机就能调试&#xff0c;但最近再写app的时候&#xff0c;插上手机&#xff0c;也打开了开发者模式&#xff0c;但就是检测不到设备。 后来发现是要打开MIDI模式。vivo手机路径为&#xff1a;系统管理与升级->开发者…

RK3568平台开发系列讲解(Linux系统篇)编写I2C客户端驱动程序

🚀返回专栏总目录 文章目录 一、定义和注册I2C驱动程序二、在设备树中实例化I2C设备——新方法三、总结沉淀、分享、成长,让自己和他人都能有所收获!😄 配置I2C设备基本上分为两个步骤。 定义并注册I2C驱动程序定义并注册I2C设备在DT中,I2C设备属于非存储器映射设备系列…

HQYJ 2024-2-21 作业

复习课上内容&#xff08;已完成&#xff09;结构体字节对齐&#xff0c;64位没做完的做完&#xff0c;32位重新都做一遍&#xff0c;课上指定2字节对齐的做一遍&#xff0c;自己验证&#xff08;已完成&#xff09;两种验证大小端对齐的代码写一遍复习指针内容&#xff08;已完…