前端基础--Vue3

news2024/11/22 16:05:12

Vue3基础

VUE3和VUE2的区别

2020年9月18日,Vue.js发布版3.0版本,代号:One Piece 于 2022 年 2 月 7 日星期一成为新的默认版本! Vue3性能更高,初次渲染快55%, 更新渲染快133% 。体积更小 Vue3.0 打包大小减少41%。 同时Vue3可以更好的支持TypeScript。 vue3中文文档:Vue.js : Vue.js - 渐进式 JavaScript 框架 | Vue.js,vue2和vue3的主要区别在于以下几点: 1、生命周期函数钩子不同

beforeCreate  -> setup()    开始创建组件之前,创建的是data和method
created       -> setup()
beforeMount   -> onBeforeMount  组件挂载到节点上之前执行的函数。
mounted       -> onMounted  组件挂载完成后执行的函数
beforeUpdate  -> onBeforeUpdate 组件更新之前执行的函数。
updated       -> onUpdated  组件更新完成之后执行的函数。
beforeDestroy -> onBeforeUnmount    组件挂载到节点上之前执行的函数。
destroyed     -> onUnmounted    组件卸载之前执行的函数。
activated     -> onActivated    组件卸载完成后执行的函数
deactivated   -> onDeactivated  在组件切换中老组件消失的时候执行

数据双向绑定原理不同

VUE2VUE3
利用ES5的一个APIObject.defineProperty()对数据进行劫持,结合发布者订阅者模式的方式来实现的。使用了ES6的Proxy API对数据代理。

vue3提供的proxy API代理的优势在于:

  • defineProperty只能监听某个属性,不能对全对象监听

  • 可以省去for...in,闭包等内容来提升效率(直接绑定整个对象即可)

  • 可以监听数组,不再单独的对数组做特异性处理。可以检测到数组内部数据的变化。

定义变量和方法不同

vue2vue3
在data中定义变量,在methods中创建方法使用一个新的setup方法

vue3提供的setup方法在组件初始化构造的时候触发,使用以下三个步骤建立反应性数据:

  • 从vue引入reactive

  • 使用reactive方法来声明数据为响应性数据

  • 使用setup方法返回响应性数据,从而template可以获取这些响应式数据。

<script>
 export default {
  setup(){
   // 数据和方法都写这里,更简洁
    const user = "username";
    const met =  ()=>{
      
    }
  }
}
</script>

API类型不同

vue2vue3
选项型api(在代码中分割不同属性:data,computed,methods等)组合型api(使用方法进行分隔,显得更加简便整洁)

是否支持碎片

vue2vue3
是,即可以拥有多个根节点
<template>
  <div>
   <h1></h1>
  <div>
  <div>
   <h1></h1>
  <div>
</template>

父子之间传参不同

vue2vue3
父传子:子组件通过prop接收子传父:子组件中通过$emit向父组件触发一个监听方法,传递一个参数使用setup()中的第二个参数content对象中有emit,只需要在setup()接收第二个参数中使用分解对象法取出emit就可以在setup方法中随意使用了。

v-if 和 v-for的优先级

VUE2VUE3
v-for 优先于 v-if 生效v-if 优先于 v-for 生效

使用Vite创建项目

在VUE3中使用vite来创建项目而不再使用 vue-cli,初始化项目 ,vite 是新一代前端构建工具,官网地址:https://vitejs.cn,vite的优势如:

  • 轻量快速的热重载(HMR),能实现极速的服务启动。

  • TypeScriptJSXCSS 等支持开箱即用。

  • 真正的按需编译,不再等待整个应用编译完成。

    注意:Vite 需要 Node.js 版本 >= 12.0.0。【使用nvm安装 node 18.20.3】

  • 注意:还需要去设置仓库地址: npm config set registry https://registry.npmmirror.com

    在VUE2中使用npm进行包的管理,在VUE3中pnpm进行包的管理,首先我们需要安装 pnp

  • 安装pnpm :

在磁盘上创建一个文件夹,如: vue3-demo[非必须],然后进入目录,使用cmd窗口执行命令如下:

npm i pnpm -g
  1. 安装vite : 执行下面命令,按照提示完成项目创建
pnpm create vite@latest    或者   yarn create vite
​
1.输入项目名字,默认为vue3-demo
2.选择创建的项目类型,选择vue即可
3.选择创建的vue项目类型, TypeScript
4.启动项目

命令 : pnpm create vite@latest 执行效果如下

  • 也可以使用 : npm init vite@latest

  1. 安装依赖: 进入到创建好的项目中执行命令 pnpm i
pnpm i
​
cnpm install
  1. 启动项目

  • 启动命令看 package.json -> scripts { ... }

pnpm dev

访问控制台地址,启动效果如下

项目结构认识

├── dist/                                                       //代码编译目录
└── src/
    ├── api/                       // 接口请求目录
    ├── assets/                    // 静态资源目录
    ├── common/                    // 通用类库目录
    ├── components/                // 公共组件目录
    ├── router/                    // 路由配置目录
    ├── store/                     // 状态管理目录
    ├── style/                     // 通用样式目录
    ├── utils/                     // 工具函数目录
    ├── views/                     // 页面组件目录
    ├── App.vue
    ├── main.ts                                     //主ts
├── tests/                         // 单元测试目录
├── index.html                                      //默认首页,入口页面
├── jsconfig.json                  // JavaScript 配置文件
├── vite.config.js                 // Vite 配置文件
└── package.json                                        //依赖管理
└── vite.config.ts
​

route的使用

安装route路由

官网:安装 | Vue Router

pnpm install vue-router@4
创建页面

在src目录下创建views/order/order.vue 以及 views/user/user.vue 页面文件,内容如下

<script setup lang="ts">
​
</script>
​
<template>
  <div>11111111111111</div>
</template>
​
<style scoped>
</style>
----

创建router

在src目录下创建router/index.ts文件,内容如下

import { createRouter, createWebHashHistory } from 'vue-router'
​
const router = createRouter({
    history: createWebHashHistory(),
    routes: [
      {path:"/",name:"home",component:()=>import("../views/User.vue")},
      {path:"/test",name:"test",component:()=>import("../views/Order.vue"),}
    ],
  })
​
 export default router 
  • createWebHashHistory: hash 模式下使用的是createWebHashHistoryapi 进行配置 VueRouter 的历史模式。使用 hash 模式下会在浏览器网页路由当中使用哈希字符(#)对 url 进行切割并且匹配哈希字符后的字符进行判断路由匹配与跳转处理。

在main.js中使用路由

...省略...
​
//导入路由
import { createApp } from 'vue'
import router from './router/index'
​
//创建app
const app = createApp(App);
​
//使用路由
app.use(router)
​
//挂载app
app.mount('#app')

在App.vue文件中指定路由出口

<template>
  <div>
        <!--     路由出口 ,所有页面都会放到这个里面-->
    <router-view></router-view>
  </div>
</template>

重启测试

写在最后:今天给大家分享Vue3的相关基础知识,主要是环境的搭建,明天将给大家分享vue3的核心语法。笔者小,中,大厂均有面试经历,坚持每日分享java全栈知识,希望能够和大家共同进步。

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

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

相关文章

AI 影评生成

电影作为一种重要的艺术形式&#xff0c;承载着无穷的想象力和情感表达。它不仅是娱乐的载体&#xff0c;更是一面照亮人性、社会和历史的镜子。通过电影&#xff0c;观众可以体验不同的世界、感受各种情感&#xff0c;甚至找到共鸣和启发。在这个充满多样性和创意的电影世界中…

自养号测评:引领跨境电商新纪元的策略与实践

在跨境电商的浩瀚蓝海中&#xff0c;自养号测评如同一股不可忽视的潮流&#xff0c;正悄然重塑着行业的未来。这一策略通过精心培育海外买家账号&#xff0c;不仅有效规避了服务商测评的诸多风险&#xff0c;更成为众多卖家提升产品销量与口碑的黑科技运营武器。 核心科技&…

支付宝服务商支付,如何邀请商户入驻?

支付宝服务商支付&#xff1a;如何邀请商户入驻 一、支付宝服务商支付 支付宝服务商支付模式为商户带来了诸多优势。它能够整合多种支付方式&#xff0c;包括扫码支付、刷脸支付、线上支付等&#xff0c;满足不同消费者的支付习惯。同时&#xff0c;提供了强大的财务管理功能…

【MindSpore学习打卡】应用实践-计算机视觉-ShuffleNet图像分类:从理论到实践

在当今的深度学习领域&#xff0c;卷积神经网络&#xff08;CNN&#xff09;已经成为图像分类任务的主流方法。然而&#xff0c;随着网络深度和复杂度的增加&#xff0c;计算资源的消耗也显著增加&#xff0c;特别是在移动设备和嵌入式系统中&#xff0c;这种资源限制尤为突出。…

数据结构(JAVA)—代码题

01-数据结构—判断题 02-数据结构—选择题 03 数据结构—多选填空程序填空 ​ 01-顺序表的建立及遍历 import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; import java.util.Scanner;public class Main {public static void main(St…

有哪些好的 Stable Diffusion 提示词(Prompt)可以参考?

Docker 作图咒语生成器 docker-prompt-generator 是一个开源项目&#xff0c;可以利用模型反推出提示词&#xff0c;让你偷偷懒&#xff0c;无需琢磨怎么写prompt&#xff0c;只需要找一个差不多的模型反推一下&#xff0c;直接用就好了&#xff0c;支持支持 MidJourney、Stab…

《Linux开发笔记》C语言编译

C语言编译过程 编译过程主要分为四步&#xff1a;预处理、编译、汇编、链接 预处理&#xff1a;主要用于查找头文件、展开宏 编译&#xff1a;把.i文件编译成.s文件 汇编&#xff1a;把.s文件汇编为.o文件 链接&#xff1a;把多个.o文件链接成一个app 以上四个步骤主要由3个命…

颅内感染性疾病患者就诊指南

颅内感染性疾病&#xff0c;即病原体侵入中枢神经系统&#xff0c;导致脑部或脑膜发生炎症的疾病。这些病原体可能是细菌、病毒、真菌或寄生虫等。颅内感染不仅会对脑组织造成损害&#xff0c;还可能引发一系列严重的并发症&#xff0c;如癫痫发作、意识障碍等 颅内感染性疾病的…

电子邮件OTP验证身份认证接口API服务商比较

电子邮件OTP验证身份认证接口API服务商如何正确选择&#xff1f; 电子邮件OTP验证是一种广泛应用且安全的身份认证方式。AokSend将比较几家主要的电子邮件OTP验证身份认证接口API服务商&#xff0c;帮助企业选择合适的解决方案。 电子邮件OTP&#xff1a;验证优势 可以为用户…

UE4_材质_材质节点_DepthFade

一、DepthFade参数 DepthFade&#xff08;深度消退&#xff09;表达式用来隐藏半透明对象与不透明对象相交时出现的不美观接缝。 项目说明属性消退距离&#xff08;Fade Distance&#xff09;这是应该发生消退的全局空间距离。未连接 FadeDistance&#xff08;FadeDistance&a…

数字时代的巨变!互联网思维与按效果付费的超强联合!

数字时代企业转型的重大变革 家人们&#xff0c;今天来聊聊数字时代企业数字化转型那些事儿&#xff01; 在这个时代&#xff0c;企业数字化转型已经是必然趋势啦。蚓链数字化生态系统在帮助企业在转型过程中采用互联网思维&#xff0c;再加上按效果付费的商业交付模式&#xf…

小程序开发平台版源码系统——万能门店小程序功能 前后端分离 带完整的安装代码包以及搭建教程

系统概述 在移动互联网的浪潮中&#xff0c;小程序以其轻量、便捷、无需下载即可使用的特点&#xff0c;迅速成为连接用户与商家的新桥梁。为了满足广大商家快速搭建个性化、高效运营的小程序需求&#xff0c;我们精心打造了“小程序开发平台版源码系统——万能门店小程序功能…

【经典算法题】两数之和

暴力解法 两层for循环&#xff0c;O(n*n) 优化解法 哈希&#xff0c;O(n) class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> hashtable new HashMap<Integer, Integer>();for (int i 0; i < nums.length; i) {if (ha…

【Hec-Ras】第一期:软件安装

Hec-Ras软件安装 1 HEC-RAS软件介绍2 HEC-RAS软件下载3 HEC-RAS软件安装4 HEC-RAS软件界面介绍参考 1 HEC-RAS软件介绍 HEC-RAS 是美国陆军工程兵团工程水文中心&#xff08; Hydrologic Engineering Centers, HEC&#xff09;开发的河道水力计算程序&#xff08;River Analys…

前后端分离django-restframework——解决跨域请求

为什么会出现跨域问题&#xff1f; 出于浏览器的同源策略限制。同源策略&#xff08;Sameoriginpolicy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能&#xff0c;如果缺少了同源策略&#xff0c;则浏览器的正常功能可能都会受到影响。可以说Web是构建…

Redis 7.x 系列【16】持久化机制之 AOF

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 1. 概述 默认情况下&#xff0c;Redis 使用RDB持久化&#xff0c;但如果进程出现问题或电源中断…

企业如何在当前形势下实现精益生产?

近年来&#xff0c;企业面临诸多挑战&#xff0c;从成本控制到效率提升&#xff0c;每一项决策都关乎着企业的生死存亡。尤其是在全球经济一体化和市场竞争日益激烈的大背景下&#xff0c;企业如何实现精益生产&#xff0c;成为了摆在众多企业家面前的一道难题。今天&#xff0…

STM32 看门狗 HAL

由时钟图可以看出看门狗采用的是内部低速时钟&#xff0c;频率为40KHz 打开看门狗&#xff0c;采用32分频&#xff0c;计数1250。 结合设置的分频系数和重载计数值&#xff0c;我们可以计算出看门狗的定时时间&#xff1a; 32*1250/40kHz 1s 主函数中喂狗就行 HAL_IWDG_Ref…

ISP IC/FPGA设计-第一部分-SC130GS摄像头分析(0)

1.介绍 SC130GS是一款国产的Global shutter CMOS图像传感器&#xff0c;最高支持1280Hx1024V240fps的传输速率&#xff1b;SC130GS有黑白和彩色款&#xff0c;作为ISP开发选择彩色的&#xff0c;有效像素窗口为1288Hx1032V&#xff0c;支持复杂的片上操作&#xff0c;选择他理…

2023-2024华为ICT大赛中国区 实践赛网络赛道 全国总决赛 理论部分真题

Part1 数通模块(10题)&#xff1a; 1、如图所示&#xff0c;某园区部署了IPv6进行业务测试&#xff0c;该网络中有4台路由器&#xff0c;运行OSPFv3实现网络的互联互通&#xff0c;以下关于该OSPFv3网络产生的LSA的描述&#xff0c;错误的是哪一项?(单选题) A.R1的LSDB中将存在…