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

vue3常用代码

文章目录

  • 监听路由
  • mitt、project/inject 无效
    • 解决方案
  • 防抖函数 (已封装)
  • 下载函数 (已封装)

菜鸟做项目时发现很多 vue3 常用的代码,所以来总结一下!

监听路由

import { useRoute } from "vue-router";
let router = useRoute();
watch(() => router.path,(newValue, oldValue) => {console.log("watch", newValue, oldValue);},{ immediate: true }
);

mitt、project/inject 无效

如果通信的组件是 router-view 里面 根据路由加载的 或者 路由有两层嵌套,那么不管是 mitt 还是 project/inject 都无法进行组件间的通信,因为 mitt 要能通信必须是该界面已经加载出来了!而 project/inject 不知道为什么,嵌套了两层后,第二层 router-view 里面的组件就无法获取了,会报错

[Vue warn]: injection "openmenu" not found. at <Resources onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< undefined > > at <RouterView> at <ElMain> at <ElContainer> at <Home onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< null > > at <RouterView> at <App>

好像是因为第一层 router-view 被卸载了,所以 project 为 undefined 了!也可能是因为 provide 只能够向下进行传递数据,而路由并不相当于是其子组件!

解决方案

使用pinia、vuex等!

防抖函数 (已封装)

/*** 防抖函数* @param {function} fn* @param {number} delay* @returns {function}* 如果函数有参数,直接定义一个常量等于debounce(fn,delay)* 调用的时候直接 常量(函数参数) 就行**/
export const debounce = (fn, delay) => {let timer = null;return function () {let context = this;let args = arguments;clearTimeout(timer);timer = setTimeout(function () {fn.apply(context, args);}, delay);};
};

下载函数 (已封装)

详见:常用代码:vue必须配置的部分代码、element ui按需引入、vue动态绑定背景、自适应js、禁止放大、播放声音、store的使用、websocket封装、echarts、swiper、下载函数

相关文章:

  • thinphp 调用 \think\Log::write 写入回调日志信息
  • 手机操作系统Android
  • [UI5 常用控件] 02.Title,Link,Label
  • 《WebKit技术内幕》学习之十五(2):Web前端的未来
  • 重学java 11 封装
  • Spring Security 存储密码之 JDBC
  • 【C++】类和对象(中篇)(全网最细!!!)
  • 【C++11并发】mutex 笔记
  • 华为三层交换机之基本操作
  • leetcode88合并两个有序数组
  • python爬虫框架Scrapy
  • 案例分享 | 助力数字化转型:嘉为科技项目管理平台上线
  • CEF框架中的一些宏定义(二):CEF_CURRENTLY_ON
  • JavaEE进阶(6)SpringBoot 配置文件(作用、格式、properties配置文件说明、yml配置文件说明、验证码案例)
  • 【计算机网络】第三章·数据链路层(三)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Git学习与使用心得(1)—— 初始化
  • HTML5新特性总结
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • java正则表式的使用
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • SAP云平台里Global Account和Sub Account的关系
  • Sublime text 3 3103 注册码
  • vue.js框架原理浅析
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 飞驰在Mesos的涡轮引擎上
  • 诡异!React stopPropagation失灵
  • 看域名解析域名安全对SEO的影响
  • 前端之Sass/Scss实战笔记
  • 如何设计一个比特币钱包服务
  • 数据可视化之 Sankey 桑基图的实现
  • 小李飞刀:SQL题目刷起来!
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 云大使推广中的常见热门问题
  • 转载:[译] 内容加速黑科技趣谈
  • linux 淘宝开源监控工具tsar
  • ​VRRP 虚拟路由冗余协议(华为)
  • #pragam once 和 #ifndef 预编译头
  • #pragma once
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $jQuery 重写Alert样式方法
  • (C)一些题4
  • (Python) SOAP Web Service (HTTP POST)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ... 是什么 ?... 有什么用处?
  • .bat批处理(一):@echo off
  • .NET 使用配置文件