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 自己设置的域名尽量特别一些防止重复

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[YoloV8目标检测与实例分割——目标检测onnx模型推理]

一、模型转换 1.onnxruntime ONNX Runtime(ONNX Runtime或ORT)是一个开源的高性能推理引擎,用于部署和运行机器学习模型。它的设计目标是优化执行使用Open Neural Network Exchange(ONNX)格式定义的模型,ON…

设备健康管理系统助力制造企业实现数字化转型

在当今快速变革的制造业环境中,数字化转型已成为制造企业保持竞争力和实现可持续发展的关键。在这个数字化转型的浪潮中,设备健康管理系统正发挥着重要的作用。设备健康管理系统通过实时监测、预测分析和智能诊断等功能,为制造企业提供了全面…

亚马逊云科技Amazon Q,一款基于生成式人工智能的新型助手

近日,亚马逊云科技宣布推出Amazon Q,这是一款基于生成式人工智能(AI)的新型助手,专为辅助工作而设计,可以根据您的业务量身定制。通过连接到公司的信息存储库、代码、数据和企业系统,可以使用Am…

Redis(认识NoSQL,认识redis,安装redis,redis桌面客户端,redis常见命令,redis的Java客户端)

文章目录 Redis快速入门1.初识Redis1.1.认识NoSQL1.1.1.结构化与非结构化1.1.2.关联和非关联1.1.3.查询方式1.1.4.事务1.1.5.总结 1.2.认识Redis1.3.安装Redis1.3.1.依赖库1.3.2.上传安装包并解压1.3.3.启动1.3.4.默认启动1.3.5.指定配置启动1.3.6.开机自启 1.4.Redis桌面客户端…

Apollo自动驾驶:改变交通运输的游戏规则

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言1. Apollo缓存层2. 本地状态管理库3. 离线同步和冲突解决4. 离线数据同步和离线优先策略结论 📲🔌 构建离线应用:Apollo…

【微服务】springboot整合skywalking使用详解

目录 一、前言 二、SkyWalking介绍 2.1 SkyWalking是什么 2.2 SkyWalking核心功能 2.3 SkyWalking整体架构 2.4 SkyWalking主要工作流程 三、为什么选择SkyWalking 3.1 业务背景 3.2 常见监控工具对比 3.3 为什么选择SkyWalking 3.3.1 代码侵入性极低 3.3.2 功能丰…

Vue 自定义网站logo

效果如下&#xff1a; static目录下增加一个图标文件ico格式 修改index.html文件 代码如下&#xff1a; <link rel"shortcut icon" type"image/x-icon" href"static/lzwd.ico" > 按以上方法设置一下&#xff0c;就可以实现在浏览器显示自…

[Verilog] 加法器实现

1. 4位的加法器 先来一个最基本的的Verilog加法器 设计代码 module adder_4bit (input [3:0] a, b, output [3:0] sum, output carry);assign

【HR非技术问题面试篇】你怎么看待加班?

你对加班怎么看待? &#x1f60a;老油条经典回答系列 &#x1f60a;老油条经典回答系列 这种问题&#xff0c;怎么回答都可以&#xff0c;我觉得重要的实时表达你自己。如果你就不想加班&#xff0c;也没必要勉强说自己爱加班&#xff0c;结果入职之后干的不开心。 不过&…

云卷云舒:面向业务的智能运维(下)

云卷云舒&#xff1a;面向业务的智能运维&#xff08;上&#xff09;-CSDN博客 接着聊&#xff1a; 5、业务智能运维典型应用场景和关键设计 5.1 数据的采集 &#xff08;1&#xff09; 业务层数据的采集 包括接口响应时间、调用次数、服务间调用关系、时延、慢SQL、JVM内…

万字盘点 Android 领域在 2023 年的重要技术:AI, 14, Compose, 鸿蒙...

AICore 2022 年底横空出世的 GPT-3.5 引发了全球的大模型 LLM 狂潮。作为在 AI 领域耕耘多年的巨头&#xff0c;Google 自然不会坐视不管&#xff0c;于 2023 年底之际发布了超越 GPT-4 的 Gemini 系列模型&#xff0c;其在多模态领域的表现令无数人震撼。 而对于 Android 开发…

蓝桥杯C/C++程序设计——成绩统计

题目描述 小蓝给学生们组织了一场考试&#xff0c;卷面总分为 100 分&#xff0c;每个学生的得分都是一个 0 到 100 的整数。 如果得分至少是 60 分&#xff0c;则称为及格。如果得分至少为 85 分&#xff0c;则称为优秀。 请计算及格率和优秀率&#xff0c;用百分数表示&am…

SpringSecurity登录逻辑快速集成及原理探查

框架简介 Spring 是非常流行和成功的 Java 应用开发框架&#xff0c;Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架&#xff0c;提供了一套 Web 应用安全性的完整解决方案。 一般来说&#xff0c;Web应用的安全性包括用户认证&#xff08;Authe…

Java学习——设计模式——介绍

文章目录 设计模式介绍UML的类图表示类与类之间关系的表示关联关系聚合关系组合关系依赖关系继承关系实现关系 设计模式介绍 设计模式design patterns&#xff0c;指在软件设计中&#xff0c;被反复使用的一种代码设计经验。使用设计模式的目的是为了可重用代码&#xff0c;提…

Python序列之集合

系列文章目录 Python序列之列表Python序列之元组Python序列之字典Python序列之集合&#xff08;本篇文章&#xff09; Python序列之集合 系列文章目录前言一、集合是什么&#xff1f;二、集合的操作1.集合的创建&#xff08;1&#xff09;使用{}创建&#xff08;2&#xff09;…

电商大数据商品采集:阿里巴巴1688电商网站货源产品信息采集

商品详情大数据采集:阿里巴巴1688电商网站货源产品信息采集 ------------- 数据采集满足多种业务场景&#xff1a;适合产品、运营、销售、数据分析、政府机关、电商从业者、学术研究等多种身份 职业。 舆情监控&#xff1a;全方位监测公开信息&#xff0c;抢先获取舆论趋势。 市…

计算机组成原理复习4

习题 练习题 下列不属于系统总线的为&#xff08;&#xff09; a.数据总线 b.地址总线 c.控制总线 d.片内总线 D 系统总线中地址总线的功能是&#xff08;&#xff09; a.选择主存单元地址 b.选择进行信息传输的设备 c.选择外存地址 d.指定主存和I/O设备接口电路的地址 D 解…

【操作系统xv6】学习记录1

前置说明&#xff1a; git-v9版本&#xff1a;git clone https://github.com/mit-pdos/xv6-public/tree/xv6-rev9 bili:https://www.bilibili.com/video/BV15r4y1z75F 深圳大学罗秋明老师的课程 我自己用的wsl2的ubuntu18 无桌面版本 make qemu-nox bug 起初在双系统的ubuntu…

数据模型设计

数据模型设计&#xff0c;可以理解为数据库中的表结构设计。 我们在设计器中创建的数据模型&#xff0c;也称为实体。我们将前端页面中传过来的数据保存到对应的实体中&#xff0c;即为将前端数据保存到了数据库中。 1 、实体与枚举的创建 1 .1 创建供应商 supplier实体 在左…

旁挂二层隧道转发小实验

WLAN配置 旁挂二层隧道转发 1.基础配置&#xff1a; SW1: system-view vlan batch 100 to 101interface GigabitEthernet 0/0/1 port link-type trunk port trunk pvid vlan 100 //打上管理VLAN的100标签 port trunk allow-pass vlan 100 101interface GigabitEthernet 0/…