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

初探Vue前端框架

文章目录

  • 简介
  • 什么是Vue
    • 概述
    • 优势
    • MVVM框架
  • Vue的特性
    • 数据驱动视图
    • 双向数据绑定
    • 指令
    • 插件
  • Vue的版本
    • 版本概述
    • 新版本Vue 3
    • Vue 3新特性
    • UI组件库
    • UI组件库概述
    • 常用UI组件库
  • 安装Vue
    • 安装Vue
    • 查看Vue版本
  • 实例
    • 利用Vue命令创建Vue项目
    • 切换工作目录
    • 安装vue-cli脚手架
    • 创建Vue项目
    • 启动Vue项目
    • 项目运行过程
    • 项目目录结构
    • 利用Vite工具创建Vue项目
    • 概述
    • 命令
    • 实战

在这里插入图片描述

简介

大家好,今天我们将一起初探Vue前端框架。Vue是一款轻量级、易学且灵活的前端框架,它通过虚拟DOM技术和组件化开发,极大地提高了开发效率和项目的可维护性。

什么是Vue

概述

Vue(读音:/Vjuː/)是一款用于构建用户界面的渐进式框架。其中,“渐进式”是指在使用Vue核心库时,可以在核心库的基础上根据实际需要逐步增加功能。

优势

  • 轻量级:Vue是一个轻量级的前端开发框架,文件体积小。
  • 降低学习门槛:Vue项目基于JavaScript语言开发,开发者不用单独学一门陌生的语言,从而降低了学习的门槛。
  • 使用灵活:Vue在使用上比较灵活,开发人员可以选择使用Vue开发一个全新项目,也可以将Vue引入现有项目。
  • 虚拟DOM技术:Vue通过虚拟DOM技术减少对DOM的直接操作,并通过尽可能简单的API来实现响应的数据绑定,可支持单向和双向数据绑定。
  • 组件化开发:Vue支持组件化开发,可提高项目的开发效率和可维护性,使代码更易于复用,便于团队的协同开发。
  • 工程化开发:Vue可以与前端开发中用到的一系列工具以及各种支持库结合使用,以实现前端工程化开发,从而提高了项目的开发效率,降低了大型项目的开发难度。

MVVM框架

Vue是基于MVVM模式的框架,MVVM主要包含Model(数据模型)、View(视图)和ViewModel(视图模型)。Model是指数据部分,负责业务数据的处理;View是指视图部分,即用户界面,负责视图处理;ViewModel用于连接视图与数据模型,负责监听Model或者View的改变。

Vue的特性

数据驱动视图

在使用Vue的页面中,Vue会监听数据变化,当页面数据发生变化时,Vue会自动重新渲染页面结构。

双向数据绑定

Vue实现了双向数据绑定,即当数据发生变化时,视图也会发生变化;当视图发生变化时,数据也会跟着同步变化。例如,用户在填写表单时,双向数据绑定可以辅助开发者在无须手动操作DOM的前提下,自动同步用户填写的内容数据,从而获取表单元素最新的值。

指令

指令主要包括内置指令和自定义指令,内置指令是Vue本身自带的指令,而自定义指令是由用户自己定义的指令。指令的名称以“v-”开头,作用于HTML中的元素。将指令绑定在元素上时,指令会给绑定的元素添加一些特殊的行为。例如,v-bind指令用于实现单向数据绑定,v-if指令用于实现页面条件渲染,v-for指令用于实现页面列表渲染等。

插件

Vue支持插件,通过加载插件可以实现更多的功能。常用的插件有Vue Router(路由)、Vuex(状态管理库)、Pinia(轻量级状态管理库)等,这些插件经过简单配置就可以使用。

Vue的版本

版本概述

目前,Vue共有3个大版本,分别是Vue 1、Vue 2和Vue 3。其中,Vue 1几乎被淘汰,不建议学习与使用;Vue 2和Vue 3目前被广泛应用,并且Vue 3将会逐步替代Vue 2。

新版本Vue 3

Vue 3支持Vue 2中绝大多数的API与特性,同时Vue 3还新增了一些特有的功能,并废弃了Vue 2中的一些旧功能。Vue 3新增的功能包括组合式(Composition)API、多根节点组件等;废弃的旧功能包括过滤器(Filter)以及 o n ( ) 、 on()、 on()off()和$once()实例方法等。虽然从表面上看,Vue 3和Vue 2的使用方式没有太大的差异,但Vue 3的底层代码发生了很大变化,包括渲染、数据监听、双向绑定、生命周期等。

Vue 3新特性

  • 体积更小,采用按需编译的方式编译出来的文件体积比Vue 2的小。
  • 性能提升,运行速度比Vue 2快1.5倍左右。
  • 具有更好的TypeScript支持。
  • 暴露了更底层的API,可以通过多种方式组织代码,代码使用上更加灵活。
  • 提供了更先进的组件。Vue创建了一个虚拟的Fragment节点,允许组件中有多个根节点。
  • 提供组合式API,能够更好地组合逻辑、封装逻辑、复用逻辑。

UI组件库

UI组件库概述

为了提高开发效率,开发者可以在项目中添加UI组件库。UI组件库可以理解成一个可重复使用的界面设计元素的集合体,使用它可以更快速地开发用户界面。

常用UI组件库

  • Element Plus组件库:Element Plus是一款基于Vue 3的组件库,提供丰富的UI组件和功能,适用于快速开发现代化的Web应用。它遵循Material Design设计语言,支持多平台和国际化。
  • Vant组件库:Vant是一个基于Vue 3的移动端组件库,提供了丰富的UI组件和实用的工具函数,旨在帮助开发者快速构建高性能的移动应用界面。它遵循Material Design设计语言,支持按需引入,具有良好的兼容性和可扩展性。从3.0版本开始支持Vue 3。
  • Ant Design Vue组件库:Ant Design Vue是一个基于Vue.js的UI组件库,提供了一系列预制的组件和模板,用于快速构建高质量的Vue应用程序界面。它遵循Ant Design的设计理念,支持定制化和国际化。从2.0版本开始支持Vue 3。
  • 主流UI组件库都已经发布了支持Vue3的版本。

安装Vue

安装Vue

执行命令:npm install -g vue

查看Vue版本

执行命令:vue --version

实例

利用Vue命令创建Vue项目

切换工作目录

工作目录:D:\project_practice

安装vue-cli脚手架

执行命令:npm install -g @vue/cli

创建Vue项目

  • 方法一:用vue init命令
    执行命令:vue init webpack vue3-demo-1

  • 方法二:用vue create命令
    执行命令:vue create vue3-demo-2
    采用缺省预设模式 - 第一项,直接敲回车

启动Vue项目

  • 启动vue3-demo-1项目

    • 进入项目目录
      执行命令:cd vue3-demo-1
    • 启动项目服务
      执行命令:npm run dev
      编译成功,访问网址:http://localhost:8080
    • 查看项目首页
      访问http://localhost:8080
    • 停止项目服务
      按组合键Ctrl + C
  • 启动vue3-demo-2项目

    • 进入项目目录
      执行命令:cd ../vue3-demo-2
    • 启动项目服务
      执行命令:npm run serve

项目运行过程

当执行npm run devnpm run serve命令启动服务时,项目就会运行起来,该项目会通过src\main.js文件将src\App.vue组件渲染到index.html文件的指定区域。

项目目录结构

  • vue3-demo-1项目目录结构
  • vue3-demo-2项目目录结构

利用Vite工具创建Vue项目

概述

通过模板自动创建项目的方式相对简单,它通过附加的命令行选项直接指定项目名称和模板,省去了填写项目名称、选择框架和变体等环节。Vite提供了许多模板预设,可以创建Vite+React+TS、Vite+Vue、Vite+Svelte等类型的项目。

命令

  • 使用npm 6或更低版本创建项目
    npm create vite@latest <项目名称> --template <模板名称>

  • 使用npm 7或更高版本创建项目
    npm create vite <项目名称> -- --template <模板名称>

  • 使用yarn create命令创建项目
    yarn create vite <项目名称> --template <模板名称>

实战

  • 切换到工作目录

  • 基于模板创建项目
    使用yarn创建一个基于Vite+Vue模板的项目,执行命令:yarn create vite hello-vite --template vue

  • 启动项目,开启本地服务
    切换到项目目录,安装项目全部依赖
    执行命令:yarn dev,启动服务

  • 访问项目首页
    在浏览器里访问http://localhost:5173
    单击三次按钮,程序自动计数

通过今天的实战,希望大家能够对Vue有一个初步的了解,并能够在实际项目中运用Vue来构建用户界面。

相关文章:

初探Vue前端框架

文章目录 简介什么是Vue概述优势MVVM框架 Vue的特性数据驱动视图双向数据绑定指令插件 Vue的版本版本概述新版本Vue 3Vue 3新特性UI组件库UI组件库概述常用UI组件库 安装Vue安装Vue查看Vue版本 实例利用Vue命令创建Vue项目切换工作目录安装vue-cli脚手架创建Vue项目启动Vue项目…...

Lucas带你手撕机器学习——岭回归

岭回归&#xff08;Ridge Regression&#xff09; 一、背景与引入 在进行线性回归分析时&#xff0c;我们常常面临多重共线性的问题。多重共线性指的是自变量之间高度相关&#xff0c;这会导致回归系数的不稳定性&#xff0c;使得模型的预测能力降低。传统的线性回归通过最小…...

C2W4.LAB.Word_Embedding.Part1

理论课&#xff1a;C2W4.Word Embeddings with Neural Networks 文章目录 Word Embeddings First Steps: Data PreparationCleaning and tokenizationSliding window of wordsTransforming words into vectors for the training setMapping words to indices and indices to w…...

hive初体验

1.首先&#xff0c;确保启动了Metastore服务。 runjar就是metastore进程 2.进入hive客户端: 命令:hive 3.操作:没有指定数据库时默认在default 一:创建表:CREATE TABLE test(id INT, name STRING, gender STRING); 完成,show tables看一下 也可以通过hdfs文件系统查看,默认路径…...

云渲染主要是分布式(分机)渲染,如何使用blender云渲染呢?

云渲染主要是分布式&#xff08;分机&#xff09;渲染&#xff0c;比如一个镜头同时开20-100张3090显卡的机器渲染&#xff0c;就能同时渲染20-100帧&#xff0c;渲染不仅不占用自己电脑&#xff0c;效率也将增加几十上百倍&#xff01; blender使用教程如下&#xff1a; 第一…...

WordPress与WP Engine:关键事件时间线

WordPress与WP Engine&#xff1a;关键事件时间线 以下时间线突出了9月和10月之间这场不断升级的WordPress与WP Engine冲突中的关键事件&#xff1a; 9月21日&#xff1a;Matt Mullenweg发布了一篇名为“WP Engine不是WordPress”的博客。 9月22日&#xff1a;Mullenweg批评…...

大数据治理平台建设规划方案(71页WORD)

随着信息化时代的到来&#xff0c;大数据已成为企业管理和决策的重要基础。然而&#xff0c;大数据的快速增长和复杂性给数据的管理和治理带来了巨大挑战。为了有效应对这些挑战&#xff0c;构建一个高效、稳定的大数据治理平台显得尤为重要。 文档介绍&#xff1a; 该平台旨在…...

Maven 项目管理工具

目录 Maven简介 Maven快速上手 Maven详细介绍 Maven工作机制 Maven安装及配置 使用IDEA创建Maven Web工程 Maven简介 Maven是 Apache 开源组织奉献的一个开源项目&#xff0c;可以翻译为“专家”或“内行”。 Maven 的本质是一个项目管理工具&#xff0c;将项目开发和管…...

ubuntu开机启动jar

要在Ubuntu系统上开机启动一个jar文件&#xff0c;你可以创建一个systemd服务单元。以下是创建服务并设置开机启动的步骤&#xff1a; 创建一个新的systemd服务文件。 打开一个新的服务文件&#xff0c;例如/etc/systemd/system/your-service.service&#xff0c;使用你喜欢的…...

【目标检测02】非极大值抑制 NMS

文章目录 1. 前言2. 原理3. 代码实现 1. 前言 在检测图像中的目标时&#xff0c;一个目标可能会被预测出多个矩形框&#xff0c;而实际上我们只需要一个&#xff0c;如何消除冗余的边界框呢&#xff1f;一种方简单的方案是提升置信度的阈值&#xff0c;过滤掉低置信度的边界框…...

104协议调试工具

在学习104协议过程中&#xff0c;通过直接阅读协议的学习方式会略有枯燥&#xff0c;这里把常用的104调试、测试工具介绍给大家&#xff0c;以便快速的进行模拟通信来更好的了解、学习104协议。 通信协议分析及仿真软件是非常重要的测试工具&#xff0c;该软件支持 101,104,mo…...

日常记录:es TransportClient添加证书处理

背景 最近在搞es登录&#xff0c;不知道是不是低版本问题&#xff08;6.8.12&#xff09;&#xff0c;开启登录之后springboot连接es&#xff0c;es一直报Caused by: io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record: 45530000002c000000000000009108004d3…...

apply call bind 简介

Function.prototype.call(thisArg [, arg1, arg2, …]) call() 简述 call() 方法 调用一个函数, 其具有一个指定的 this 值和分别地提供的参数(参数的列表)。当第一个参数为 null、undefined 的时候&#xff0c; 默认 this 上下文指向window。 call() 简单实例 const name …...

数据结构 单调栈

应用情景 求当前元素 前面/后面&#xff0c;第一个比它 小/大 的元素的 值/下标/下标距离 优点 剔除重复寻路操作&#xff0c;将暴力 O(n^2) 优化到 O(n) 性质 从栈底开始&#xff0c;元素 单调递增/单调递减 单调性视具体情景而定 (找较大值还是较小值、找的方向) 思路…...

【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (七):MongoDB的设置

本项目旨在学习如何快速使用 nodejs 开发后端api&#xff0c;并为以后开展其他项目的开启提供简易的后端模版。&#xff08;非后端工程师&#xff09; 由于文档是代码写完之后&#xff0c;为了记录项目中需要注意的技术点&#xff0c;因此文档的叙述方式并非开发顺序&#xff0…...

基于flask和neo4j的医疗知识图谱展示问答系统

如果你仍在为毕业设计的选题发愁&#xff0c;或者想通过技术项目提升专业实力&#xff0c;这个基于Flask和Neo4j的医疗知识图谱展示与问答系统&#xff0c;绝对是个不错的选择&#xff01; 项目亮点大揭秘&#xff1a; 知识图谱与问答结合&#xff1a;我们采用了医疗场景下的知…...

Python——脚本实现datax全量同步mysql到hive

文章目录 前言一、展示脚本二、使用准备1、安装python环境2、安装EPEL3、安装脚本执行需要的第三方模块 三、脚本使用方法1、配置脚本2、创建.py文件3、执行脚本4、测试生成json文件是否可用 前言 在我们构建离线数仓时或者迁移数据时&#xff0c;通常选用sqoop和datax等工具进…...

Python爬虫教程:从入门到精通

Python爬虫教程&#xff1a;从入门到精通 前言 在信息爆炸的时代&#xff0c;数据是最宝贵的资源之一。Python作为一种简洁而强大的编程语言&#xff0c;因其丰富的库和框架&#xff0c;成为了数据爬取的首选工具。本文将带您深入了解Python爬虫的基本概念、实用技巧以及应用…...

pytorh学习笔记——cifar10(四)用VGG训练

1、新建train.py&#xff0c;执行脚本训练模型&#xff1a; import os import timeimport torch import torch.nn as nn import torchvisionfrom vggNet import VGGbase, VGGNet from load_cifar import train_loader, test_loader import warnings import tensorboardX# 忽略…...

CRLF、UTF-8这些编辑器右下角的选项的意思

经常使用编辑器的小伙伴应该经常能看到右下角会有这么两个选项&#xff0c;下图是VScode中的示例&#xff0c;那么这两个到底是啥作用呢&#xff1f; 目录 字符编码ASCII 字符集GBK 字符集Unicode 字符集UTF-8 编码 换行 字符编码 此部分参考博文 在计算机中&#xff0c;所有…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...