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

vue3框架笔记

Vue

Vue 是一个渐进式的前端开发框架,很容易上手。Vue 目前的版本是 3.x,但是公司中也有很多使用的是 Vue2。Vue3 的 API 可以向下兼容 2,Vue3 中新增了很多新的写法。我们课程主要以 Vue3 为主

官网

我们学习 Vue 需要转变思想,以后不再需要自己操作 dom 元素,我们只需要改变数据,然后 dom 元素会自动更新。需要理解什么是数据驱动

常见的前端开发框架

三大前端框架:Vue、React、Angular(第一个 MVVM 的框架)

MVVM:数据双向绑定。分为三部分,Model、View、ViewModel。model 用来存储数据,view 用来展示数据,ViewModel 用来实现数据的双向绑定

MVC:是一种开发模式,分为三部分,Model、View、Controller。model 用来存储数据,view 用来展示数据,Controller(控制器)。前端 MVC 开发框架最早的是 Backbone

vue 的基础指令和常见模板语法

基础指令和语法

在 vue 中,所有以 v-开头的都是内置指令

  • v-model,作用是实现 data 数据和输入框的绑定。相当于设置了输入框的 value 值和绑定了 input 事件

    修饰符:

    • trim,去空格

    • number,转换为数字

  • v-bind,绑定属性。其实难点在样式绑定

  • v-html/v-text,v-html 相当于设置 innerHTML;v-text 相当于设置 innerText

  • v-show/v-if,他们都是用来控制标签的显示和隐藏。v-show 通过 display 属性实现,v-if 会直接删除或者插入 dom 元素。建议使用 v-show

  • v-if/v-else,这两个是成对出现的,else 必须配合 if 使用

  • v-on,绑定事件。v-on:可以简写为@,所有的事件处理函数都需要放在 methods 中

  • v-for.作用是循环绑定数据,可以遍历常见的数据类型,如:字符串,数字,数组,对象


  • 计算属性,是一个值。当依赖的数据改变之后会重新计算。计算属性具有缓存效果,依赖的数据不改变的话不会重新执行

  • watch,监听一个数据的改变,数据改变之后做其他一些事情

面试点:计算属性和方法调用的区别:

  1. 计算属性具有缓存效果,当依赖的数据不改变的话不会重新计算

  2. 方法调用使用的时候需要加括号

  3. 方法调用在每一次页面更新的时候都会重新执行

Vue3 中没有过滤器这个概念了,我们需要自己定义方法实现数据的处理

组件定义和组件传参

组件可以理解为自定义标签。自定义组件类似与代码封装,我们把一些重复性的代码或者需要复用的功能进行封装。封装遵循原则:高内聚低耦合

  • 局部组件,定义之后需要先注册再使用

  • 全局组件,定义之后可以直接使用,不需要注册

  • 组件传参

    • 父传子,使用 props 属性。从外往内传

    • 子传父,使用事件派发。从内往外传

    • 非相关组件【后面再讲】,在 vue2 中使用事件总线,在 vue3 中使用 provide/inject。或者使用 vuex 等状态管理插件

组件生命周期钩子函数

八个常见的生命周钩子函数和两个不常见的。生命周期钩子函数是在组件存在的不同时间触发的回调函数

分为四个阶段:

  1. 创建

    1. beforeCreate,创建之前

    2. created【很重要】,创建完成。一般用来调接口获取初始化数据

  2. 挂载

    1. beforeMount,挂载之前

    2. mounted【很重要】,挂载完成。表示页面中的 dom 元素加载完成了,获取获取 dom 元素

  3. 更新,每一次数据或者属性改变的时候会重复的执行。不能在更新阶段改变数据,会引起死循环

    1. beforeUpdate,更新之前

    2. updated,更新完成。

  4. 销毁,组件卸载的时候触发

    1. beforeUnmount,销毁之前

    2. unmounted,销毁完成

组件嵌套的时候生命周期的执行顺序【面试常问】:如果组件出现嵌套,会执行到父组件的 beforeMount 的时候,开始解析模板,如果遇到子组件,那么会执行所有子组件的创建到挂载完成的生命周期。当所有的子组件都挂载完成之后,执行父组件的挂载完成

20220928,今天的内容,以后使用最多的是:

  1. 组件生命周期中的 created 回调函数

  2. 组件传参中的父传子

  3. 计算属性

全局 API 和内置组件
  • component,动态组件,是 vue 的内置组件。通过 is 属性控制当前展示的内容

  • keep-alive,对组件做缓存。当使用了 keep-alive 之后,组件不会重复创建。常用的属性有:include(包含)和 exclude(不包含),多个的时候用,分割

  • $nexttick

  • $refs

  • Teleport,传送。通过 to 属性可以把内部的标签直接传送到 dom 中的指定位置

插槽

slot,就是占位符。可以从组件外部传递内容到组件内进行展示

  • 默认插槽

  • 具名插槽

setup 和组合式 API

以前我们讲的是 options api(选项式 API),是 vue2 中的标准写法。到 Vue3 之后会有新的推荐写法,叫组合式 API。Vue3 中也依然可以使用以前的写法。

setup 这个方法是在组件创建之前执行的,这个 api 中没办法使用 this

脚手架项目和单文件组件

单文件组件

vue 中的单文件组件,就是一个.vue 结尾的文件。在这个文件中,包含 template、style、script。浏览器是不认识.vue 文件的,需要借助工具进行打包,最终编译生成 js,css 文件在浏览器上运行

脚手架搭建项目

vite,它是一个前端构建工具,可以让我们非常方便的实现模块化前端项目开发。官网

npm init vite@latest # 使用vite创建项目
# 根据提示自行选择

常用的插件

路由插件

作用是实现页面的跳转。官网

npm i vue-router # 安装插件
ui 组件库
vant

Vant 是 Vue 中的一个 ui 组件库,做移动端开发

官网

使用

npm i vant # 安装
element-plus

官网地址

npm i element-plus

使用

// main.ts
import { createApp } from "vue";
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
import App from "./App.vue";
​
const app = createApp(App);
​
app.use(ElementPlus);
app.mount("#app");
状态管理插件
Vuex

官网,官网中的Vuex 是什么章节,一定要好好看看

Vuex 是一个 vue 中可以使用的全局状态管理插件。在 vue2 的项目中使用比较广泛。

单向数据流:数据是单向流动的,我们在视图中通过 dispatch 派发一个 action 改变数据,数据改变之后视图重新渲染

vuex 中的五大核心模块:

  1. state,用来存储数据

  2. mutation,用来改变数据

  3. action,用来做异步操作。一般所有的异步操作调接口都放在 action 中,获取数据之后通过 commit 提交一个触发一个 mutation,改变数据。(注意的重点:action 中也能改变数据,但是不建议这样做,因为所有的数据改变需要可以被追踪,所以数据改变都在 mutation 中进行)

  4. module,用来做模块化拆分

  5. getter,相当于计算属性

vuex 中的数据流向:在组件中 dispatch 派发一个 action,在 action 中调接口获取数据,数据获取成功之后通过 commit 触发执行一个 mutation,在 mutation 中改变数据,数据改变之后组件重新渲染

vuex 目前已经不再是 vue3 项目中推荐的状态管理插件了,以后都将使用 pinia


vuex 中使用 mapXXX 方法,映射属性信息到组件内

  • mapState,作用是把 vuex 的 state 数据映射到组件的计算属性上

  • mapActions,作用是把 vuex 的 actions 映射到组件的 methods 中

  • mapMutations,作用是把 vuex 的 mutations 映射到组件的 methods 上

  • mapGetters,作用是把 vuex 的 getters 映射到组件的计算属性上

pinia

中文站点

npm i pinia # 安装

defineStore 定义一个数据

其他的一些内容

TS

TypeScript 是 js 的超集,加入了数据类型的概念。让我们的 js 代码可以实现数据类型限制,ts 代码还是需要被编译成 js 进行运行的

ts 中文网站

ts 中我们可以直接使用 js 中的所有方法,只需要把文件的后缀名改成 ts 就好,如果遇到数据类型验证报错直接使用 any 作为我们的数据类型就好,any 表示任意类型。所以 TypeScript 被开发人员叫做 AnyScript

ts 视频教程

富文本编辑器

wangeditor 官网

npm i @wangeditor/editor @wangeditor/editor-for-vue@next
管理后台模板

Pure Admin

​
# 此项目安装依赖需要使用pnpm
# pnpm是一个包管理工具,和npm的功能基本一致
# 第一次使用需要全局安装
npm i pnpm -g
​
pnpm install # 安装项目的依赖
pnpm dev # 启动项目
​
Vue2

官网

目前(2022-10-20),官方最新的 vue2 中已经支持 vue3 的 setup 语法,是从 2022-07-01 更新的 2.7(Naruto)版本之后开始的

如果我们要创建 vue2 的项目,可以使用官方的脚手架

# cli的官网 https://cli.vuejs.org/zh/
npm i @vue/cli -g # 只安装一次就好
vue create vue-app-pre # 创建一个项目
npm run serve
项目打包上线

网站常见的上线方式:

  1. CI/CD,自动化部署和可持续集成。很多好的互联网公司使用的上线方案,你只需要把你的代码提交到代码仓库就行。代码会自动进行测试和部署。这个部署环境是你们公司的运维人员或者技术负责人处理的,和你无关

  2. 把你的前端页面打包之后,继成在后端项目代码中,作为他们的静态资源

  3. 把你的前端页面打包之后,上传公司的 ftp 服务器,就可以直接预览

  4. 你们公司有人帮你部署,你啥都不用管

APP 常见的上线方式:

  1. 公司有专门做 app 开发(android、ios)的人,把你的网页打包之后发给他,它会制作 app 并上传应用商店。和你无关

  2. 公司就你一个人,那么你可以借助第三方工具,比如 hbuilder 实现

vue 项目如何打包npm run build

推荐插件

  • anywhere,这个插件可以让我们把任意一个文件夹启动为一个网站

    npm i anywhere -g # 全局安装
    anywhere 端口号
  • localtunnel,这个插件可以把本地的一个端口映射为一个外网地址。这是一个内网穿透插件

    #https://github.com/localtunnel/localtunnel
    npm i localtunnel -g # 安装
    lt -p 端口号 -s 自己设置的域名尽量特别一些防止重复

相关文章:

vue3框架笔记

Vue Vue 是一个渐进式的前端开发框架,很容易上手。Vue 目前的版本是 3.x,但是公司中也有很多使用的是 Vue2。Vue3 的 API 可以向下兼容 2,Vue3 中新增了很多新的写法。我们课程主要以 Vue3 为主 官网 我们学习 Vue 需要转变思想&#xff0…...

pytest --collectonly 收集测试案例

pytest --collectonly 是一条命令行指令,用于在运行 pytest 测试时仅收集测试项而不执行它们。它会显示出所有可用的测试项列表,包括测试模块、测试类和测试函数,但不会执行任何实际的测试代码。 这个命令对于查看项目中的测试结构和确保所有…...

dev express 15.2图表绘制性能问题(dotnet绘图表)

dev express 15.2 绘制曲线 前端代码 <dxc:ChartControl Grid.Row"1"><dxc:XYDiagram2D EnableAxisXNavigation"True"><dxc:LineSeries2D x:Name"series" CrosshairLabelPattern"{}{A} : {V:F2}"/></dxc:XYDi…...

WorkPlus:领先的IM即时通讯软件,打造高效沟通协作新时代

在当今快节奏的商业环境中&#xff0c;高效沟通和协作是企业成功的关键。而IM即时通讯软件作为实现高效沟通的利器&#xff0c;成为了现代企业不可或缺的一部分。作为一款领先的IM即时通讯软件&#xff0c;WorkPlus以其卓越的性能和独特的功能&#xff0c;助力企业打造高效沟通…...

学习SpringCloud微服务

SpringCloud 微服务单体框架微服务框架SpringCloud微服务拆分微服务差分原则拆分商品服务拆分购物车服务拆分用户服务拆分交易服务拆分支付服务服务调用RestTemplate远程调用 微服务拆分总结 服务治理注册中心Nacos注册中心服务注册服务发现 OpenFeign实现远程调用快速入门引入…...

WPF 显示气泡提示框

气泡提示框应用举例 有时候在我们开发的软件经常会遇到需要提示用户的地方&#xff0c;为了让用户更直观&#xff0c;快速了解提示信息&#xff0c;使用简洁、好看又方便的气泡提示框显得更加方便&#xff0c;更具人性化。如下面例子&#xff1a;(当用户未输入账号时&#xff0…...

L1-062:幸运彩票

题目描述 彩票的号码有 6 位数字&#xff0c;若一张彩票的前 3 位上的数之和等于后 3 位上的数之和&#xff0c;则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。 输入格式&#xff1a; 输入在第一行中给出一个正整数 N&#xff08;≤ 100&#xff09;。随后 N 行…...

python+vue高校体育器材管理信息系统5us4g

优秀的高校体育馆场地预订系统能够更有效管理体育馆场地预订业务规范&#xff0c;帮助管理者更加有效管理场地的使用&#xff0c;有效提高场地使用效率&#xff0c;可以帮助提高克服人工管理带来的错误等不利因素&#xff0c;所以一个优秀的高校体育馆场地预订系统能够带来很大…...

10 款顶级的免费U盘数据恢复软件(2024 年 更新)

你曾经遇到过U盘无法访问的情况吗&#xff1f;现在我们教你如何恢复数据。 在信息时代&#xff0c;数据丢失往往会造成巨大的困扰。而USB闪存驱动器作为我们常用的数据存储设备&#xff0c;其重要性不言而喻。但是&#xff0c;U盘也可能会出现各种问题&#xff0c;如无法访问、…...

C# json 转匿名对象及C#关键字的处理

调用第三方接口&#xff0c;返回的json字符串&#xff0c;为了方便使用转为C#匿名对象&#xff1a; /// <summary>/// json转为匿名对象/// </summary>/// <typeparam name"T"></typeparam>/// <param name"json"></para…...

关于彻底通过外网,自动批量下载Python的pip依赖包后到企业内网重安装的步骤-比单个包的要方便多了。

关于彻底通过外网&#xff0c;自动批量下载Python包后到企业内网重安装的步骤 前言&#xff1a; 哎&#xff0c;在本人的前面的博客中&#xff0c;分享的方法可能是不通用的。因为在一次实践中发现它不能总是通用且麻烦。所以本次记录分享一个更方便快速的方式。 上期前言&am…...

Oracle T4-4小型机上配置Ldom部署rac

Ldom控制域配置 (两台主机一样&#xff0c;以hydb1为例) roothydb1 # ldm add-vds primary-vds0 primary roothydb1 # ldm add-vcc port-range5000-5100 primary-vcc0 primary roothydb1 # ldm add-vsw net-devigb0 primary-vsw0 primary roothydb1 # ldm add-vsw net-devixgbe…...

【2023Hadoop大数据技术应用期末复习】填空题题型整理

大数据的 4V 特征包含&#xff08;&#xff09;&#xff08;&#xff09;&#xff08;&#xff09;&#xff08;&#xff09; 答案&#xff1a;大量、多样、高速、价值Hadoop 三大组件包含&#xff08;&#xff09;&#xff08;&#xff09;&#xff08;&#xff09; 答案&…...

劫持 PE 文件:新建节表并插入指定 DLL 文件

PE格式简介 PE(Portable Executable)格式&#xff0c;是微软Win32环境可移植可执行文件(如exe、dll、vxd、sys和vdm等)的标准文件格式。PE格式衍生于早期建立在VAX(R)VMS(R)上的COFF(Common Object File Format)文件格式。 Portable 是指对于不同的Windows版本和不同的CPU类型上…...

HTTP分数排行榜

HTTP分数排行榜 介绍一、创建数据库二、创建PHP脚本三、上传下载分数四、测试 介绍 Unity中向服务器发送用户名和得分&#xff0c;并存入数据库&#xff0c;再讲数据库中的得分按照降序的方式下载到Unity中。 一、创建数据库 首先&#xff0c;我们要在MySQL数据库中建立一个…...

Android 实现 Slots 游戏旋转效果

文章目录 前言一、效果展示二、代码实现1.UI布局2.SlotAdapter2.SlotsActivity 总结 前言 slots游戏&#xff1a; Slots游戏是一种极具流行度的赌博和娱乐形式&#xff0c;通常被称为老虎机或水果机。它们在赌场、线上游戏平台和手机应用中广泛存在。一般这类游戏都使用Unity…...

AI产品经理 - 如何做一款软硬协同AI产品

【背景】从0做一款软硬协同的AI产品&#xff0c;以智能医药保温箱 1.以智能医药保温箱 2.调研定义市场方向 地点&#xff1a;医药、实验室 场景&#xff1a;长宽高/装箱/运输/实验室 3.需求挖掘 4.如何进行软硬件AI产品工作 软硬件产品设计&#xff1a;功能/硬件外观设计、…...

拒绝采样(算法)总结

先说说什么是拒绝采样算法&#xff1a;就类似于数学上的求阴影面积的方法&#xff0c;直接求求不出来&#xff0c;就用大面积 - 小面积 阴影面积的办法。 所谓拒绝 和 采样 &#xff1a;就像是撒豆子计个数&#xff0c;计算概率问题一样&#xff0c;大桶里面套小桶&#xff0c…...

分布式数据库事务故障恢复的原理与实践

关系数据库中的事务故障恢复并不是一个新问题&#xff0c;自70年代关系数据库诞生之后就一直伴随着数据库技术的发展&#xff0c;并且在分布式数据库的场景下又遇到了一些新的问题。本文将会就事务故障恢复这个问题&#xff0c;分别讲述单机数据库、分布式数据库中遇到的问题和…...

Spark中的数据加载与保存

Apache Spark是一个强大的分布式计算框架&#xff0c;用于处理大规模数据。在Spark中&#xff0c;数据加载与保存是数据处理流程的关键步骤之一。本文将深入探讨Spark中数据加载与保存的基本概念和常见操作&#xff0c;包括加载不同数据源、保存数据到不同格式以及性能优化等方…...

2023-12-20 LeetCode每日一题(判别首字母缩略词)

2023-12-20每日一题 一、题目编号 2828. 判别首字母缩略词二、题目链接 点击跳转到题目位置 三、题目描述 给你一个字符串数组 words 和一个字符串 s &#xff0c;请你判断 s 是不是 words 的 首字母缩略词 。 如果可以按顺序串联 words 中每个字符串的第一个字符形成字符…...

C# 事件(Event)

C# 事件&#xff08;Event&#xff09; C# 事件&#xff08;Event&#xff09;通过事件使用委托声明事件&#xff08;Event&#xff09;实例 C# 事件&#xff08;Event&#xff09; 事件&#xff08;Event&#xff09; 基本上说是一个用户操作&#xff0c;如按键、点击、鼠标移…...

2312d,d的sql构建器

原文 项目 该项目在我工作项目中广泛使用,它允许自动处理联接方式动态构建SQL语句. 还会自动直接按表示数据库行结构序化.它在dconf2022在线演讲中介绍了:建模一切. 刚刚添加了对sqlite的支持.该API还不稳定,但仍非常有用.这是按需构建,所以虽然有个计划外表,但满足了我的需要…...

以太网二层交换机实验

实验目的&#xff1a; &#xff08;1&#xff09;理解二层交换机的原理及工作方式&#xff1b; &#xff08;2&#xff09;利用交换机组建小型交换式局域网。 实验器材&#xff1a; Cisco packet 实验内容&#xff1a; 本实验可用一台主机去ping另一台主机&#xff0c;并…...

启封涂料行业ERP需求分析和方案分享

涂料制造业是一个庞大而繁荣的行业 它广泛用于建筑、汽车、电子、基础设施和消费品。涂料行业生产不同的涂料&#xff0c;如装饰涂料、工业涂料、汽车涂料和防护涂料。除此之外&#xff0c;对涂料出口的需求不断增长&#xff0c;这增加了增长和扩张的机会。近年来&#xff0c;…...

华为ensp网络设计期末测试题-复盘

网络拓扑图 地址分配表 vlan端口分配表 需求 The device is running!<Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]un in en Info: Information center is disabled. [Huawei]sys S1 [S1]vlan 99 [S1-vlan99]vlan 100 [S1-vlan100]des IT [S1-…...

Dockerfile: WORKDIR vs VOLUME

WORKDIR WORKDIR指令为Dockerfile中的任何RUN、CMD、ENTRYPOINT、COPY和ADD指令设置工作目录。 如果WORKDIR不存在&#xff0c;它将被创建&#xff0c;即使它没有在任何后续Dockerfile指令中使用。 语法 : WORKDIR dirpath WORKDIR指令可以在Dockerfile中多次使用。如果提供了…...

spring ioc源码-refresh();

主要作用是刷新应用上下文 Override public void refresh() throws BeansException, IllegalStateException {synchronized (this.startupShutdownMonitor) {// 启动刷新的性能跟踪步骤StartupStep contextRefresh this.applicationStartup.start("spring.context.refre…...

使用递归实现深拷贝

文章目录 为什么要使用递归什么深拷贝具体实现基础实现处理 函数处理 Symbol处理 Set处理 Map处理 循环引用 结语-源码 为什么要使用递归什么深拷贝 我们知道在 JavaScript 中可以通过使用JSON序列化来完成深拷贝&#xff0c;但是这种方法存在一些缺陷&#xff0c;比如对于函数…...

工程(十七)——自己数据集跑R2live

博主创建了一个科研互助群Q&#xff1a;772356582&#xff0c;欢迎大家加入讨论。 r2live是比较早的算法&#xff0c;编译过程有很多问题&#xff0c;通过以下两个博客可以解决 编译R2LIVE问题&解决方法-CSDN博客 r2live process has died 问题解决了_required process …...

wordpress注册防骚挠/网站定制设计

什么是容器 容器是指容纳其他物品的工具&#xff0c;物体可以被放置在容器内&#xff0c;容器可以保护其中内容物&#xff1b; Linux容器发展之路 容器技术的概念最初出现在 2000 年&#xff0c;当时称为 FreeBSD jail&#xff0c;这种技术可将 FreeBSD 系统分区为多个子系统&a…...

郑州做网站大量网站被关/企业网页设计制作

圆圈舞蹈 [问题描述] 熊大妈的奶牛在时针的带领下&#xff0c;围成了一个圆圈跳舞。由于没有严格的教育&#xff0c;奶牛们之间的间隔不一致。 奶牛想知道两只最远的奶牛到底隔了多远。奶牛A到B的距离为A顺时针走和逆时针走&#xff0c;到达B的较短路程。告诉你相邻两个奶牛间的…...

做网站用虚拟服务器可以吗/百度平台客服电话是多少

python 通过ansible 获取服务器基本信息&#xff1a;利用ansible的 setup 模块可以返回服务器的详细信息所有的信息都是以字典的格式显示的[roote tmp]# ansible 192.168.137.152 -m setup 192.168.137.152 | SUCCESS > {"ansible_facts": {"ansible_all_ip…...

国内可访问的海外网站和应用/百度网盘怎么找片

我们直接看代码&#xff1a; <meta http-equiv"refresh" content"跳转时间&#xff08;秒数&#xff09;;urlhttps://blog.csdn.net/PanDaoxi2020&#xff08;跳转链接&#xff09;">...

寻花问柳一家专门做男人的网站/网上培训

Design Principles 这些设计原则能优化Android用户体验并使激发用户的最大兴趣&#xff0c;当你设计思考时要时刻想着他们&#xff0c;不要偏离目标。 打动我 用惊奇的方式吸引我 漂亮的界面&#xff0c;精心放置的动画&#xff0c;适时的声音反馈都是美好的体验&#xff0c;敏…...

博彩网站建设教程/网站排名提高

有了一张自驾旅游路线图&#xff0c;你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序&#xff0c;帮助前来咨询的游客找一条出发地和目的地之间的最短路径。 如果有若干条路径都是最短的&#xff0c;那么需要输出最便宜的一条路径。 输入格式…...