【Vue】vue概述
1、简介
- Vue.js(简称Vue)是一款用于构建用户界面的渐进式JavaScript框架。
- 由前Google高级软件工程师尤雨溪(Evan You)于2014年创建,是一个独立且社区驱动的开源项目。
- Vue.js基于标准的HTML、CSS和JavaScript,提供了一个声明式、组件化的编程模型,旨在高效地开发用户界面。
- Vue.js凭借其易用性、灵活性和高性能,在前端开发领域占据了重要的地位,适用于从简单的单页面应用到复杂的大型企业级应用。
2、主要特点
- 响应式数据绑定:Vue.js提供了响应式数据绑定机制,使得数据的变化能够自动反映在视图上,简化了开发过程。
- 组件化:Vue.js鼓励通过小型、独立和可复用的组件构建应用,提高了代码的可维护性和可重用性。
- 指令系统:Vue.js增加了一套特殊的HTML属性,称为“指令”,用于实现DOM元素的绑定和事件的监听等功能。
- 虚拟DOM:Vue.js使用虚拟DOM技术来提高页面的渲染效率,通过最小化DOM操作来优化性能。
- 易于学习和集成:Vue.js的核心库只关注视图层,易于学习和集成到现有项目中。
- 生态系统丰富:Vue.js拥有庞大的社区支持和完善的生态系统,包括官方路由管理器Vue Router、状态管理库Vuex等,为开发者提供了丰富的工具和库。
3、框架结构
3.1核心部分
- 实例(Vue Instance):每个Vue应用都是通过Vue函数创建一个新的Vue实例开始的。实例是Vue应用的入口,包含了应用的数据、模板、挂载元素、方法、生命周期钩子等选项。
- 模板(Template):Vue.js使用基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。模板中的特殊HTML属性(指令)告诉Vue如何渲染DOM。
- 组件(Component):Vue.js鼓励使用组件化的开发模式,将界面拆分成独立、可复用的组件。每个Vue组件都包含自己的模板、逻辑和样式,它们可以是全局注册的,也可以是局部注册的。
- 路由(Vue Router):Vue Router是Vue.js的官方路由管理器,用于构建单页面应用(SPA)。它允许你定义多个路由,每个路由映射一个组件,实现页面的无缝切换。
- 状态管理(Vuex):Vuex是Vue.js的官方状态管理模式,用于在多个组件之间共享状态。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
3.2实例
3.2.1简介
- Vue实例是Vue.js框架中的核心概念,它代表了Vue应用中的一个独立单元,用于管理数据、模板、方法以及与视图相关的逻辑。
- Vue实例通过
new Vue()构造函数创建。在创建Vue实例时,可以传入一个选项对象,该对象包含了Vue实例所需的各种配置,如挂载元素(el)、数据(data)、方法(methods)、计算属性(computed)、侦听器(watch)等。
例如:
const app = new Vue({ el: '#app', data: { message: 'Hello Vue!' }, methods: { reverseMessage() { this.message = this.message.split('').reverse().join(''); } }
});
3.2.2主要组成部分
- 数据对象(
data):- 包含Vue应用的状态数据,这些数据将被响应式地绑定到视图上。
- Vue会自动将
data中的属性转换为getter和setter,从而实现数据的响应式更新。
- 模板(Template):
- Vue实例使用的HTML模板,定义了最终生成的视图结构。
- 模板中可以使用Vue的模板语法来绑定数据、定义事件处理器等。
- 方法(
methods):- 在Vue实例中可以定义各种方法,用于处理业务逻辑、处理用户事件等。
- 方法中的
this自动绑定为Vue实例本身。
- 生命周期钩子(Lifecycle Hooks):
- Vue实例具有一系列的生命周期钩子函数,允许我们在不同阶段执行自定义逻辑。
- 常用的生命周期钩子包括
beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed等。
- 计算属性(
computed):- 根据已有的数据计算衍生数据的方式,计算属性的值会根据依赖的数据动态更新。
- 计算属性是基于它们的响应式依赖进行缓存的,只有在相关响应式依赖发生改变时它们才会重新求值。
- 侦听器(
watch):- Vue实例可以侦听数据的变化,并在数据发生变化时执行相应的逻辑。
- 侦听器适用于执行异步操作或开销较大的操作。
- 事件处理器:
- 在Vue实例中可以绑定处理DOM事件的方法。
- 事件处理器通过
v-on指令或@符号绑定到DOM元素上。
- 指令(Directives):
- Vue提供了一些内置指令,如
v-bind、v-model、v-if、v-for等,用于在模板中插入数据绑定和动态内容。
- Vue提供了一些内置指令,如
- 过滤器(Filters):
- Vue中的过滤器允许我们在模板中对数据进行格式化显示。
- 需要注意的是,在Vue 2.x版本中过滤器仍然可用,但在Vue 3.x版本中已被移除,推荐使用计算属性或方法来实现相同的功能。
4、安装使用流程
Vue.js的安装和使用流程通常包括以下几个步骤:
1、安装Vue CLI:Vue CLI是Vue.js的官方命令行工具,用于快速搭建Vue项目。你可以通过npm(Node包管理器)来全局安装Vue CLI。
npm install -g @vue/cli
2、创建Vue项目:使用Vue CLI创建一个新的Vue项目。在命令行中运行vue create命令,并跟随提示选择配置选项。
vue create my-vue-project
3、进入项目目录:创建项目后,进入项目文件夹。
cd my-vue-project
4、启动开发服务器:在项目目录中,运行Vue CLI提供的开发服务器命令,启动一个热重载的本地开发服务器。
npm run serve
5、开发应用:在开发服务器运行的情况下,你可以开始编辑你的Vue项目了。主要的工作将在src文件夹内进行,这里包含了项目的源代码、组件、视图等。
6、构建和部署:当应用开发完成并准备好部署时,可以使用Vue CLI的构建命令来生成生产版本的应用。
npm run build相关文章:
【Vue】vue概述
1、简介 Vue.js(简称Vue)是一款用于构建用户界面的渐进式JavaScript框架。由前Google高级软件工程师尤雨溪(Evan You)于2014年创建,是一个独立且社区驱动的开源项目。Vue.js基于标准的HTML、CSS和JavaScriptÿ…...
Docker use experience
#docker command docker load -i <镜像文件.tar> docker run -it -d --name 容器名 -p 宿主机端口:容器端口 -v 宿主机文件存储位置:容器内文位置 镜像名:Tag /bin/bash docker commit -m"提交的描述信息" -a"作者" 容器ID 要…...
Android平台RTSP|RTMP直播播放器技术接入说明
技术背景 大牛直播SDK自2015年发布RTSP、RTMP直播播放模块,迭代从未停止,SmartPlayer功能强大、性能强劲、高稳定、超低延迟、超低资源占用。无需赘述,全自研内核,行业内一致认可的跨平台RTSP、RTMP直播播放器。本文以Android平台…...
数据结构——栈(顺序结构)
一、栈的定义 栈是一种数据结构,它是一种只能在一端进行插入和删除操作的特殊线性表。这一端被称为栈顶,另一端被称为栈底。栈按照后进先出(LIFO)的原则进行操作(类似与手枪装弹后射出子弹的顺序)。在计算…...
速盾:cdn能防御ddos吗?
CDN(内容分发网络)是一种广泛应用于互联网中的技术,它通过将内容分发到全球各地的服务器上,以提高用户在访问网站时的加载速度和稳定性。然而,CDN是否能够有效防御DDoS(分布式拒绝服务)攻击是一…...
分享 2 个 .NET EF 6 只更新某些字段的方法
前言 EF 更新数据时,通常情况下,是更新全部字段的,但实际业务中,更新全部字段的情况其实很少,一般都是修改其中某些字段,所以为了实现这个目标,很多程序员通常会这样作: 先从数据库…...
vs code解决报错 (c/c++的配置环境 远端机器为Linux ubuntu)
参考链接:https://blog.csdn.net/fightfightfight/article/details/82857397 https://blog.csdn.net/m0_38055352/article/details/105375367 可以按照步骤确定那一步不对,如果一个可以就不用往下看了 目录 一、检查一下文件扩展名 二、安装扩展包并…...
08 字符串和字节串
使用单引号、双引号、三单引号、三双引号作为定界符(delimiter)来表示字符串,并且不同的定界符之间可以相互嵌套。 很多内置函数和标准库对象也都支持对字符串的操作。 x hello world y Python is a great language z Tom said, "Le…...
vue使用mavonEditor(流程图、时序图、甘特图实现)
mavonEditor 安装mavonEditor $ npm install mavon-editor --save使用 // 全局注册import Vue from vueimport mavonEditor from mavon-editorimport mavon-editor/dist/css/index.css// useVue.use(mavonEditor)new Vue({el: #main,data() {return { value: }}})//局部使用…...
Java实现短信验证码服务
1.首先这里使用的是阿里云的短信服务。 package com.wzy.util;; import cn.hutool.captcha.generator.RandomGenerator; import com.aliyun.dysmsapi20170525.Client; import com.wzy.entity.Ali; import org.springframework.stereotype.Component;/*** Author: 顾安* Descri…...
python中的线程
线程 线程概念 线程 在一个进程的内部, 要同时干多件事, 就需要同时运行多个"子任务", 我们把进程内的这些"子任务"叫做线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中, 是进程的实际运作单位。一条线程指的是进程中一个单一顺序的控制流…...
hcip学习 多实例生成树,VRRP工作原理
一、STP 和 RSTP 解决了什么问题 1、STP:解决了在冗余的二层网络中所出现的环路问题 2、RSTP:在 STP 的基础上,解决了 STP 收敛速度慢的问题,引入了一些 STP 保护机制,使其网络更加稳定 二、MSTP 针对 RSTP 的改进 …...
Docker搭建群晖
Docker搭建群晖 本博客介绍在docker下搭建群晖 1.编辑docker-compose.yml文件 version: "3" services:dsm:container_name: dsmimage: vdsm/virtual-dsm:latestenvironment:DISK_SIZE: "16G"cap_add:- NET_ADMIN ports:- 8080:50…...
【java】BIO,NIO,多路IO复用,AIO
在Java中,处理I/O操作的模型主要有四种:阻塞I/O (BIO), 非阻塞I/O (NIO), 异步I/O (AIO), 以及IO多路复用。下面详细介绍这四种I/O模型的工作原理和应用场景。 1. 阻塞I/O (BIO) 工作原理 阻塞I/O是最传统的I/O模型。在这种模型中,当一个线…...
服务器怎样减少带宽消耗的问题?
择业在使用服务器的过程中会消耗大量的带宽资源,而减少服务器的带宽消耗则可以帮助企业降低经济成本,同时还能够提高用户的访问速度,那么服务器怎样能减少带宽的消耗呢?本文就来带领大家一起来探讨一下吧! 企业可以选择…...
linux 报错:bash: /etc/profile: 行 32: 语法错误:未预期的文件结束符
目录 注意错误不一定错在最后一行 i进入编辑 esc退出编辑 :wq 保存编辑退出 :q!不保存退出 if [ $# -eq 3 ] then if [ ! -e "$1" ]; then miss1 $1 elif [ ! -e "$2" -a ! -e "$3" ]; then miss2and3…...
MySQL练习(5)
作业要求: 实现过程: 一、触发器 (1)建立两个表:goods(商品表)、orders(订单表) (2)在商品表中导入商品记录 (3)建立触发…...
泛型新理解
1.创建三个类,并写好对应关系 package com.jmj.gulimall.study;public class People { }package com.jmj.gulimall.study;public class Student extends People{ }package com.jmj.gulimall.study;public class Teacher extends People{ }2.解释一下这三个方法 pub…...
JavaSE--基础语法--继承和多态(第三期)
一.继承 1.1我们为什么需要继承? 首先,Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是 现实世界错综复杂,事物之间可能会存在一些关联,那在设计程…...
高级java每日一道面试题-2024年7月23日-什么时候用包装类, 什么时候用原始类
面试官: 你在什么时候用包装类, 什么时候用原始类? 我回答: 在Java开发中,理解何时使用包装类(Wrapper Classes)和何时使用原始类(Primitive Types)是非常重要的。这主要取决于你的具体需求以及Java语言本身的一些限…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
