vue学习笔记7

devtools/2025/2/14 2:22:55/

打包发布 

目标:明确打包的作用

说明:vue脚手架只是开发过程中,协助开发的工具,当真正开发完了 => 脚手架不参与上线

打包的作用:

将多个文件压缩合并成一个文件,语法降级,less sass ts 语法解析

打包命令

打包后,可以生成,浏览器能够直接运行的网 => 就是需要上线的源码

命令:yarn build

结果:在项目的根目录会自动创建一个文件夹`dist`, dist中的文件就是打包后的文件,只需要放到服务器中即可。

配置:默认情况下,需要放到服务器根目录打开,如果希望双击运行,需要配置publicPath 配成相对路径

打包优化:路由懒加载

目标:配置路由懒加载,实现打包优化

说明:当打包构建应用时,JavaScript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。

步骤1: 异步组件改造

步骤2: 路由中应用

Vue3的优势

Vue2 选项式 API vs Vue3 组合式API

需求:点击按钮,让数字 +1

高级软件

setup选项的写法和执行时机

高级软件人才培训专家

<script setup> 语法糖

原始复杂写法

语法糖写法

reactive()

作用:接受对象类型数据的参数传入并返回一个响应式的对象

核心步骤

1. 从 vue 包中导入 reactive 函数

2. 在 <script setup> 中执行 reactive 函数并传入类型为对象的初始值,并使用变量接收返回值

ref()

作用:接收简单类型或者对象类型的数据传入并返回一个响应式的对象

核心步骤:

1. 从 vue 包中导入 ref 函数

2. 在 <script setup> 中执行 ref 函数并传入初始值,使用变量接收 ref 函数的返回值

computed计算属性函数

计算属性基本思想和Vue2的完全一致,组合式API下的计算属性只是修改了写法

核心步骤:1. 导入computed函数

2. 执行函数 在回调参数中return基于响应式数据做计算的值,用变量接收

watch函数

作用: 侦听一个或者多个数据的变化,数据变化时执行回调函数

俩个额外参数:1. immediate(立即执行) 2. deep(深度侦听)

基础使用 - 侦听单个数据

1. 导入watch函数

2. 执行watch函数传入要侦听的响应式数据(ref对象)和回调函数

immediate

说明:在侦听器创建时立即触发回调, 响应式数据变化之后继续执行回调

deep

默认机制:通过watch监听的ref对象默认是浅层侦听的,直接修改嵌套的对象属性不会触发回调执行,需要开启deep选项

Vue3的生命周期API (选项式 VS 组合式)

生命周期函数基本使用

1. 导入生命周期函数

2. 执行生命周期函数 传入回调

执行多次

生命周期函数是可以执行多次的,多次执行时传入的回调会在时机成熟时依次执行

组合式API下的父传子

基本思想

1. 父组件中给子组件绑定属性

2. 子组件内部通过props选项接收

defineProps 原理:就是编译阶段的一个标识,实际编译器解析时,遇到后会进行编译转换

defineExpose()

默认情况下在<script setup>语法糖下组件内部的属性和方法是不开放给父组件访问的,

可以通过defineExpose编译宏指定哪些属性和方法允许访问

 

Vue3.3新特性-defineOptions

在 Vue 3.3 中新引入了 defineOptions 宏。顾名思义,主要是用来定义 Options API 的选项。可以用

defineOptions 定义任意的选项, props, emits, expose, slots 除外(因为这些可以使用 defineXXX 来做到)

 

Vue3 中的 v-model 和 defineModel

Vue3中,自定义组件上使用v-model, 相当于传递一个modelValue属性,同时触发 update:modelValue 事件

我们需要先定义 props,再定义 emits 。其中有许多重复的代码。如果需要修改此值,还需要手动调用 emit 函数。


http://www.ppmy.cn/devtools/158645.html

相关文章

深度学习每周学习总结R6(RNN实现阿尔茨海默病诊断)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客R8中的内容&#xff0c;为了便于自己整理总结起名为R6&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 目录 0. 总结1. 数据集介绍2. 数据预处理3. 模型构建4. 初始化模型及优化器5. 训练函…

蓝桥杯备赛 Day13.1走出迷宫

链接&#xff1a;走出迷宫 题目描述 小明现在在玩一个游戏&#xff0c;游戏来到了教学关卡&#xff0c;迷宫是一个N*M的矩阵。 小明的起点在地图中用“S”来表示&#xff0c;终点用“E”来表示&#xff0c;障碍物用“#”来表示&#xff0c;空地用“.”来表示。 障碍物不能通…

Golang GORM系列:定义GORM模型及关系指南

使用GORM进行数据库管理的核心是定义模型的技能。模型是程序的面向对象结构和数据库的关系世界之间的纽带。本文深入研究了在GORM中创建成功模型的艺术&#xff0c;研究了如何设计结构化的Go结构&#xff0c;用标记注释字段&#xff0c;以及开发跨模型的链接&#xff0c;以便最…

Django学习笔记(第一天:Django基本知识简介与启动)

博主毕业已经工作一年多了&#xff0c;最基本的测试工作已经完全掌握。一方面为了解决当前公司没有自动化测试平台的痛点&#xff0c;另一方面为了向更高级的测试架构师转型&#xff0c;于是重温Django的知识&#xff0c;用于后期搭建测试自动化平台。 为什么不选择Java&#x…

在 rtthread中,rt_list_entry (rt_container_of) 已知结构体成员的地址,反推出结构体的首地址

rt_list_entry (rt_container_of)宏定义&#xff1a; /*** rt_container_of - return the start address of struct type, while ptr is the* member of struct type.*/ #define rt_container_of(ptr, type, member) \((type *)((char *)(ptr) - (unsigned long)(&((type *…

【已解决】lxml.etree.ParserError: Document is empty

本专栏解决日常生活工作中非快速找到解决方案的问题。 问题背景 在爬取某网站时&#xff0c;使用开源框架报错&#xff1a;lxml.etree.ParserError: Document is empty 解决方案 1、多个搜索引擎中查找&#xff0c;建议都是对lxml的python源码进行修改&#xff0c;不好用。…

npm包管理工具

包管理工具 npm 包管理工具 介绍 Node Package Manager&#xff1a;也就是Node包管理工具但是目前已经不仅仅是Node包管理器&#xff0c;在前端项目中我们也使用它来管理依赖的包比如 vue、vue-router、vuex、express、koa 下载和安装 npm属于Node的管理工具&#xff0c;安…

【Apache Paimon】-- 作为一名小白,如何系统地学习 Apache paimon?

目录 一、整体规划 1. 了解基本概念与背景 2. 学习资料的选择 3. 学习路径与规划 4. 学习建议 5. 注意事项 6. 参考学习资料 二、详细计划 阶段 1&#xff1a;了解基础&#xff08;1-2 周&#xff09; 阶段 2&#xff1a;深入掌握核心功能&#xff08;3-4 周&#xf…