Vue相关

Vue2

  • 组件传递事件:

  • props $emit

  • sync v-model

  • $parent / $children $parent获取父组件的实例,任意调用父组件的方法,修改父组件的数据

  • ref 父组件获取 子组件 实例,任意调用子组件的方法获取子组件的属性

  • provide / injectprpvide父组件内部提供数据inject嵌套的子组件可以注入数据

  • $attrs / $listeners $attrs(没有被props接收的所有自定义属性) $listeners(可以获取所有的父组件传递过来的自定义事件)

  • eventBus 定义一个事件总线 使用$on 绑定 $emit 触发

  • vuex\vue3使用pinia

    pinia:修改数据的4种方式:1.storeToRefs、2.$patch(对象或者3.函数)、      4.store action里面

  • 路由传参

NextTick是什么?

在修改数据之后立即使用这个方法,获取更新后的 DOM

修饰符passive:监听元素滚动, pc 端是没啥问题。移动端,会让我们的网页变卡,使用这个修饰符的时候,相当于给onscroll 事件整了一个.lazy 修饰符

scoped原理是什么?

作用:使样式私有化(模块化),不对全局造成污染

原理:动态的给组件加上一个hash值,用属性选择器去匹配

vue响应式原理(数据劫持)

格式不同:v-model=“num”, :num.sync=“num”

v-model只能用一次;.sync可以有多个

如何做样式穿透

如果不添加scoped,可能影响全局样式,如果添加scoped,嵌套的子组件内部样式不能生效

scss:使用::v-deep

less:使用 /deep/

路由导航

全局导航钩子:beforeEach、beforeResolve、afterEach

组件内的钩子:beforeRouterEnter、beforeRouterUpdate、beforeRouterLeave

路由独享的守卫:beforeEnter

完整的导航解析流程

1.   导航被触发。

2.   在失活的组件里调用 beforeRouteLeave 守卫。

3.    调用全局的 beforeEach 守卫。

4.   在重用的组件里调用 beforeRouteUpdate 守卫(2.2+)。

5.   在路由配置里调用 beforeEnter。

  1. 解析异步路由组件。

7.    在被激活的组件里调用 beforeRouteEnter。

8.   调用全局的 beforeResolve 守卫(2.5+)。

  1. 导航被确认。

10.   调用全局的 afterEach 钩子。

  1. 触发 DOM 更新。

调用 beforeRouteEnter 守卫中传给 next 的回调函数,创建好的组件实例会作为回调函数的参数传入。

自定义指令钩子函数

每个指令都有 bind、inserted、update、componentupdated 和 unbind 等钩子函数

  1. e l

  2. binding

    • value:传递给指令的值。

    • oldValue:之前的值

    • arg:传递给指令的参数

    • modifiers:一个包含修饰符的对象

    • instance:使用该指令的组件实例.

    • dir:指令的定义对象.

  3. vnode

  4. prevNode

Vue3

新特性:

  • 数据响应式原理重新实现 (ES6 proxy 替代了 ES5 的 Object.defineProperty)

  • 解决了: 例如数组的更新检测等bug, 大大优化了响应式监听的性能

  • (原来检测对象属性的变化, 需要一个个对属性递归监听) proxy 可以直接对整个对象劫持

  • 虚拟DOM - 新算法 (更快 更小)

  • 提供了composition api, 可以更好的逻辑复用

  • 模板可以有多个根元素

  • 源码用 typescript 重写, 有更好的类型推导 (类型检测更为严格, 更稳定)

    使用:

    Setup特性:更好地支持Composition API(组合式API)的使用

    setup会在beforeCreate钩子函数之前执行

    页面使用的方法都需要从vue中引入

    Vue3。Tree shaking:清除多余代码优化打包

    好处:静态类型检查、面向对象编程(接口、类、继承)、兼容想、模块化开发、

  1. setup中不能使用this, this指向undefined

    setup需要有返回值,只有返回的值才能在模板中使用

    1.         支持逻辑复用:使用setup函数可以将组件中的逻辑进行复用。将逻辑封装为可复用的函数,然后在多个组件中使用。这种方式避免了传统Vue2中mixins的问题,能够更灵活地复用逻辑。

    2.         更好的组织代码:使用setup函数能够更好地组织代码,将组件内部的逻辑和状态集中在一个地方。通过setup函数,可以将组件逻辑按照功能进行划分,使代码更加清晰、易读、易维护。

    3.         更方便地访问组件实例:在Vue2中,通过this可以访问到组件实例,但在Vue3中,组件实例没有被作为默认参数传递给setup函数。而是通过返回一个包含组件实例和其他数据的对象来访问组件实例,可以更灵活地控制访问组件实例的时机和方式。  Vue3可以通过getCurrentInstance获取当前实例,但不推荐,因为它破坏了组件的封装性和可测试性

    4.         提高性能:Vue3通过静态分析组件的模板和组合式API的代码,可以更好地优化组件的渲染过程。使用setup函数可以帮助Vue3更好地理解组件的逻辑,提高渲染性能。

  2. 总结:使用setup函数可以更好地支持Composition API的使用,提高代码的复用性、组织性和性能。使用setup函数能够更好地封装和组织组件内部的逻辑和状态,使代码结构更清晰、易读、易维护

    默认普通的数据,不是响应式的

Reactive作用:传入一个复杂数据类型,将复杂类型数据,转换成响应式数据 (返回该对象的响应式代理

ref作用:对传入的数据(一般简单数据类型),包裹一层对象,转换成响应式

computed函数提供计算属性,有2种写法, 带set,get和直接拿值去计算

watch:深度监听   deep: true,immediate: true

toRefs:作用:对一个响应式对象的所有内部属性,都做响应式处理

defineEreactive/ref的响应式功能是赋值给对象的,如果给对象解构或者展开,会让数据丢失响应式的能力

useRoute

defineExpose:暴露外部的方法

defineProps、defineEmits(方法)  defineEmits(['confirm','close'])

withDefaults将默认值应用于这些 props

如果使用defineProps接收数据,这个数据只能在模板中渲染,如果想要在script中也操作props属性,应该接收返回值。 Const props = defineProps({money:Number}),不能直接defineProps

constemit= defineEmits(['changeMoney'])

const change = () => {emit('changeMoney', 10)}

依赖注入:provide 和 inject

Vue.config.js判断环境变量。process.env.NODE_ENV === 'development'

import.meta.env 和 loadEnv区别:

【Vite环境变量】import.meta.env 和 loadEnv使用和区别-CSDN博客

·      ts:是JavaScript的超集,简单来说就是:JS有的TS都有

TypeScript属于静态类型的编程语言,JavaScript属于动态类型的编程语言

Js已有类型原始类型(number/string/boolean/null/undefined

                      复杂数据类型(数组,对象,函数等)

TS新增类型:联合类型、类型别名、接口、元组、字面量类、枚举、void、…

·      1.|  (number | string)、如果函数没有返回值,那么,函数返回值类型为:void

接口类型interface 、继承extends。enum定义枚举

Proxy:常用的有哪些?

get、set、has、deleteProperty、apply、construct、getPrototypeOf、setPrototypeOf

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

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

相关文章

展锐平台的手机camera 系统开发过程

展锐公司有自己的isp 图像处理引擎,从2012 年底就开始在智能手机上部署应用。最初的时候就几个人做一款isp的从hal 到kernel 驱动的完整软件系统,分工不是很明确,基本是谁擅长哪些就搞哪些,除了架构和编码实现之外,另外…

Kafka 基于SASL/SCRAM动态认证部署,kafka加账号密码登录部署

文章目录 前言下载 kafka安装启动zookeeper添加账号密码 启动kafka修改kafka配置文件增加jaas授权文件修改启动文件,启动kafka检查是否部署成功 offset explore 连接 前言 其实挺简单的几个配置文件,问大模型一直没说到点上,绕晕了。SASL/SC…

【linux】4张卡,坏了1张,怎么办?

先禁用这张卡 grub 禁用,防止加载驱动 禁用这张卡的 PCI # 禁用 PCI 设备 0000:b1:00.0 (NVIDIA GPU) ACTION"add", SUBSYSTEM"pci", ATTR{vendor}"0x10de", KERNELS"0000:b1:00.0", RUN"/bin/sh -c echo 0000:b1:00…

数据技术进化史:从数据仓库到数据中台再到数据飞轮的旅程

随着大数据时代的到来,数据已经成为企业的核心资产之一。在过去几十年间,数据技术也随之不断演进,从早期的数据仓库到近年来热门的数据中台,再到正在快速发展的数据飞轮概念,每一步都是技术革新的体现。 一、数据仓库&…

股价预测,非线性注意力更佳?

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 本文探讨了在 transformer 模型中使用非线性注意力来预测股票价格的概念。我们讨论了黎曼空间和希尔伯特空间等非线性空间的数学基础,解释了为什么非线性建模可能是有利的,并提供了在代码中实现这种…

【二十】【QT开发应用】listwidget右键菜单和删除item

创建项目,添加资源文件 在项目文件夹中创建resources资源文件夹。 在vs中打开qrc文件,选择添加资源文件。 选择我们resources资源文件中的所有文件作为资源文件。 最后不要忘记点击保存。 向ListWidget控件添加item 右键菜单 在.h文件中添加QMenu头…

java项目之编程训练系统源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的编程训练系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 编程训练系统的主要使用者管…

结合人工智能,大数据,物联网等主流技术实现业务流程的闭环整合的名厨亮灶开源了

明厨亮灶视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。AI技术可以24小时…

1.5 计算机网络的分层结构

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言1 分层设计2 网络体系结构2.1 基本概述2.2 常见的三种网络体系结构 3 各层之间的关系3.1 水平关系3.2 垂直关系 4 数据传输过程4.1 水平视角4.2 垂直视角 前言 在当今数字…

uniapp H5 打开地图 并选中标记点

uniapp H5 打开地图 并选中标记点 先上代码 //打开地图 显示景区位置openMap() {// 支付宝// #ifdef MP-ALIPAYmy.openLocation({longitude: Number(this.detailObj.longitude), // 经度latitude: Number(this.detailObj.latitude), // 纬度name: this.detailObj.scenicName, …

CertiK因发现Apple Vision Pro眼动追踪技术漏洞,第6次获苹果认可

​2024年9月20日,头部Web3.0安全机构CertiK自豪地宣布,CertiK的工程师因发现Apple Vision Pro MR(混合现实)头显设备中的关键漏洞而获得Apple公司认可,这已经是Apple公司第六次公开发布对CertiK的致谢,Cert…

文件格式转换:EXCEL和CSV文件格式互相转换

目录 1.EXCEl和CSV文件格式互相转换1.1首先安装所需的Python包1.2excel转换为csv代码如下:1.3csv转换为excel代码如下: 由于excel文件在数学建模数据处理当中的局限性,我们通常把excel文件转换为csv文件来处理,下面是相关的代码&a…

IDEA配置全局的maven环境

1、关闭掉所有打开的项目,然后点击All settings 2、配置maven home path、user setting file、local repository。 3、配置JRE的版本 4、配置字节码版本

【第十三章:Sentosa_DSML社区版-机器学习聚类】

目录 【第十三章:Sentosa_DSML社区版-机器学习聚类】 13.1 KMeans聚类 13.2 二分KMeans聚类 13.3 高斯混合聚类 13.4 模糊C均值聚类 13.5 Canopy聚类 13.6 Canopy-KMeans聚类 13.7 文档主题生成模型聚类 13.8 谱聚类 【第十三章:Sentosa_DSML社…

聊天组件 Vue3-beautiful-chat 插槽

前言 Vue3-beautiful-chat 组件有四个插槽可以定制 一、user-avatar(头像) 首先是头像插槽,我们可以直接在 <beautiful-chat></beautiful-chat> 中间使用; 作用: 我们可以在用户头像上添加自定义样式,比如添加节日边框、可以使用首字母作为头像。。。 …

由于安全风险,安全领导者考虑禁止人工智能编码

安全团队与开发团队之间的紧张关系 83% 的安全领导者表示&#xff0c;他们的开发人员目前使用人工智能来生成代码&#xff0c;57% 的人表示这已成为一种常见做法。 然而&#xff0c;72% 的人认为他们别无选择&#xff0c;只能允许开发人员使用人工智能来保持竞争力&#xff0…

优优嗨聚集团:引领互联网服务新篇章

在当今这个日新月异的互联网时代&#xff0c;企业之间的竞争愈发激烈&#xff0c;如何高效地运营线上业务成为了众多商家关注的焦点。在这一背景下&#xff0c;四川优优嗨聚集团凭借其卓越的服务质量、创新的技术解决方案和强大的品牌影响力&#xff0c;逐渐成为了众多商家信赖…

vscode 配置rust格式化的正确方法

vscode 配置rust格式化的正确方法&#xff1a; 在settings.json里输入&#xff1a; "[rust]": {"editor.defaultFormatter": "rust-lang.rust-analyzer","editor.formatOnSave": true}

CUDA并行架构

一、CUDA简介 CUDA(Compute Unified Device Architecture)是一种由NVIDIA推出的通用并行计算架构&#xff0c;该架构使GPU(Graphics Processing Unit)能够对复杂的计算问题做性能速度优化。 二、串并行模式 高性能计算的关键是利用多核处理器进行并行计算。 串行模式&#…

Python 中的 typing 模块常见用法

typing 模块是 Python 提供的一个标准库&#xff0c;主要用于为函数、变量和类定义类型提示&#xff08;Type Hints&#xff09;&#xff0c;从而提高代码的可读性和类型安全性。虽然 Python 是动态类型语言&#xff0c;但通过 typing 模块&#xff0c;开发者可以明确指定变量和…