在JS文件中使用或扩展已有的vue文件

news2024/12/24 3:37:17

工作中遇到一个给现有项目增加一个超时重新登录的提醒框(可在提醒框中直接登录本账户)。
由于页面稍微复杂,本人又是脚手架一把梭过来的,对于直接使用 js 来完成一整个复杂还带逻辑的页面稍显吃力,所以决定先写一个 vue 页面。
其实是接到需求,看到设计图自然而然打开项目新建了一个 vue 页面,后面需要用的时候才发现需要在 js 中直接调用,又想起好像并没有这样干过,遂打开了程序员万能百度。。。。并没有太多相关的信息呀。

最后纠结于自己是要重新搞还是将就现有的 vue 页面,最后还是不愿意放弃已经写好的东西,胡乱整了些,居然出来了。

将经验贡献出来:

1). 先写了一个 vue 文件,然后发现超时提醒操作需要写在请求相应处,不能像普通写页面一样使用。所以又写了一个 js 文件,创建了一个新类继承该 vue 文件并实例化(中间出现继承时传入参数 propsvisible 并不能控制实际模态框的显隐问题,又将传入的 props 全部赋值给实例化类的 $props
2). 后面因需求需要不关闭当前所有的项目内 tabs ,但需要刷新页面,因为组件不同,使用到了 event bus (之前项目中有在全局挂载 vue ,所以直接使用的全局 vue

附代码:

*** 1. 新建一个超时重新登录提醒框的vue页面refreshLoginDialog.vue ***
部分代码:
在这里插入图片描述
正常写好逻辑操作等。

*** 2. 第二步:新建一个 refreshLoginDialog.js 文件 ***
代码如下:

// refreshLoginDialog.js
import Vue from 'vue'
import RefreshLoginDialog from './refreshLoginDialog.js'

class RefreshLogin {
	constructor(props) {
		const LoginConstructor = Vue.extend(RefreshLoginDialog)
		this.refreshLogin = new LoginConstructor({ props })
		if (props && Object.entries(props).length) {
			Object.entries(props).forEach(([key, value]) => {
				this.refreshLogin.$props[key] = value
			})
		}
	}
	installOnce() {
		const app = document.querySelector('#app')
		const loginWrapper = app.querySelector('.refresh_login')
		if (loginWrapper) {
			this.show()
		} else {
			// 添加实例挂载至页面
			app.appendChild(this.refreshLogin.$mount().$el)
		}
	}
	show() {
		this.refreshLogin.$props.visible = true
	}
}

*** 第三步:在request.js 的请求拦截里面使用 ***

在这里插入图片描述
这样就没有问题了。

虽然我总觉得哪里不对劲。。。。

这个用法感觉相当于在 js 页面中使用 UI 框架的组件,但是人家直接用的 install:
在这里插入图片描述
在之后我翻看 element-ui 的源码是怎么做的,发现直接 Vue.component 注册了一下就可以。我仿佛收到了什么巨大的打击。但是并不想去修改我的代码。能跑就不要动了。。。。。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

建模助手【有求必应】的正确打开方式

今天的话题主要想解除大家对[有求必应] 的一些误解。 因为在日常的反馈中用户似乎对于[提需求] 这玩意儿无论是从概念上还是动作上都很不 “熟悉”。 其实我们对软件认知的上限是一个软件功能的上限,产品以及行业的发展都要从打破固有认知开始。 期待更多的你们跳出…

《新华日报·科技周刊》聚焦蓝海彤翔与《流浪地球2》

瞄准世界科技前沿瞄准江苏科技创新瞄准日常科技生活《新华日报科技周刊》第203期聚焦《流浪地球2》中的大国重器其实就在我们身边重点报道了蓝海创意云渲染农场为《流浪地球2》提供了云计算渲染服务的重要成果“数字生命计划”就是元宇宙吗?电影中人类面临末日危机&…

0基础如何入门人工智能?

1.1 概念 根据维基百科的解释,人工智能是被机器展示的智力,与人类和其他动物的自然智能相反,在计算机科学中 AI 研究被定义为 “代理人软件程序”:任何能够感受周围环境并且能最大化它成功机会的设备。 1.2 重大事件 2016 年 3…

[Java]JavaWeb学习笔记(尚硅谷2020旧版)

文章目录🏀 视频及资料地址🏀 XML⚽ XML 简介🏐 xml 的作用⚽ XML 语法🏐 文档声明🏐 注释🏐 元素(标签)⚾ XML 命名规则⚾ xml 中的元素(标签)也分单双标签🏐 xml 元素属性🏐 语法规…

PHP控制反转和依赖注入的理解(通俗易懂)

目录 1.IoC是什么 2.IoC能做什么 3.IoC和DI 4.IoC(控制反转) 5.DI(依赖注入) 6.我对IoC(控制反转)和DI(依赖注入)的理解 学习PHP各个框架的过程中,都会听过IoC(控制反转) 、DI(依赖注入)这两个概念,总觉得IoC 、DI这两个概念是模糊不清的&#xff…

WINSOFT JSEngine Delphi 6-D11

WINSOFT JSEngine Delphi 6-D11 WinsoftJSEngine被认为是一个海豚引擎,包括一个强大的JavaScript引擎。 Winsoft JSEngine的功能和特点: Microsoft ChakraCore JavaScript强大的引擎实用程序 支持32位和64位窗口 提供给海豚版本6 Eli 10.1和Lazarus 为产…

29岁,从餐饮到网络安全,大龄转行逆袭成功

大龄转行,一直在网络上备受讨论。 从学习能力、试错成本来考虑,转行一定是越早越好,而大龄转行风险极大。 大龄转行,固然并非一条绝路,苏老泉,二十七,始发愤,读书籍,有的…

C++学习记录——사 类和对象(1)

文章目录1、面向对象和面向过程的初步理解2、类的引入3、类的定义4、类的访问限定符及封装1、访问限定符2、封装5.类的实例化6、类对象模型7、this1、this指针2、空指针问题3、C语言和C简单对比1、面向对象和面向过程的初步理解 C语言是一个面向过程的语言,C是一个…

美颜sdk人脸识别代码技术分析

很多人问过小编,什么样的美颜sdk才算好?对于这个问题,小编认为至少要符合以下几个特点。 1、稳定性强;2、识别精准;3、功能多样;4、集成容易;5、离线使用;6、支持多端;7、…

新手入门,深入解析 python lambda表达式

lambda 表达式是 Python 中的匿名函数。它接受任意数量的参数,并返回一个单个表达式的值。它的语法格式如下: lambda arguments: expression 文章目录lambda 函数原型解释lambda 函数用作其它参数lambda 函数高级的技巧多个参数返回多个值条件表达式嵌套…

java基础巩固-宇宙第一AiYWM:为了维持生计,编程语言番外篇之机器学习(项目预测模块总结:线性回归算法、逻辑回归分类算法)~整起

机器学习一、机器学习常见算法(未完待续...)1.算法一:线性回归算法:找一条完美的直线,完美拟合所有的点,使得直线与点的误差最小2.算法二:逻辑回归分类算法3.算法三:贝叶斯分类算法4…

PythonWeb开发基础(一)B/S开发和http协议

文章目录PythonWeb开发基础(一)B/S开发和http协议请求响应连接PythonWeb开发基础(一) B/S开发和http协议 推荐书籍:《HTTP权威开发指南》 前端:数据的格式化呈现,python中的format函数其实就…

【MyBatis】查询语句汇总

定义一个Car类:/*** 封装汽车相关信息的 pojo类*/ public class Car {// 数据库表当中的字段应该和pojo类的属性一一对应// 建议使用包装类, 这样可以防止null的问题private Long id;private String carNum;private String brand;private Double guidePrice;private String pro…

MATLAB入门——线性规划、非线性规划、多目标规划

4-1 线性规划_哔哩哔哩_bilibili 4-2 非线性规划_哔哩哔哩_bilibili 4-3 多目标规划_哔哩哔哩_bilibili 1.线性规划 有限条件下,最大收益 1. 例题 例题:张麻子既要攻碉楼又要追替身,他们一伙6人,总共1200发子弹;每有一人攻确…

【GCC】1: RTCP RR接收端生成

m79 代码。参考bytewoods 大神的以下文章:WebRTC 基于GCC的拥塞控制(上) WebRTC 基于GCC的拥塞控制(下)虽然可以拿到估算的带宽但是rtcp 总是malformed packet个 有必要带着问题跟进下整个过程 RR报文 基于丢包率的码率控制运行在发送端,依靠RTCP RR报文进行工作。* report b…

Vue2低代码平台搭建(一)

前言 大家好,我是L丶Y,这一次,我们来聊一聊前端低代码平台的构建。近些年来,随着Saas行业的高速发展,低代码的概念也逐渐流行了起来,而低代码产品也越来越多的出现在我们的身边,像国外的Mendix,国内的宜搭、苍穹、简道云等等,想通过这篇文章与大家对于前端低代码平台…

如何使用Baklib搭建企业内部wiki

Wiki 是一个协同著作平台或称开放编辑系统。我们可以用Wiki来建设帮助系统,知识库系统。国内公共wiki最著名就是百度百科,国外则是基维百科;Wiki最著名的例子之一是维基百科,它在MediaWiki上运行,任何拥有Web浏览器的人…

QT opencv 学习day02 基本数据结构 point Scalar Size Rect Mat 等等

1.point &#xff08;画点&#xff09; 1. 函数原型&#xff1a; //二维的点 typedef Point_<int> Point2i; typedef Point_<int64> Point2l; typedef Point_<float> Point2f; typedef Point_<double> Point2d; typedef Point2i Point;//三维的点…

EasyExcel 实现 批量生成多sheet多Excel打包zip下载

目录说明需求场景实现1、准备一个excel模板2、把整个excel模板放在resources里面3、重点代码效果图说明 需求场景 导出学校中高年级的学生信息&#xff0c;根据班级名称分组&#xff0c;一个班级一个excel导出&#xff0c;如果多个excel需要打包成zip压缩包下载&#xff0c;一…

Linux应用编程-音频应用编程-语音转文字项目

文章目录前言Linux语音识别alsa-lib简介&#xff1a;安装alsa-lib库&#xff1a;API调用录音相关概念样本长度&#xff08;Sample&#xff09;声道数&#xff08;channel&#xff09;帧&#xff08;frame&#xff09;周期&#xff08;period&#xff09;采样率&#xff08;Samp…