将组件直接绑定到vue实例上面的写法

怎么将组件直接绑定到vue实例上面?

在实际开发过程中,有多种使用vue组件的方式,有在组件中引入,直接挂载到vue进行全局使用,也有直接挂载到vue实例上面当成vue的一个属性来使用的。下面通过代码来实现将组件直接绑定到vue实例。

第一步写个vue组件叫demo

javascript 复制代码
<template>
	<view>
		<view v-if="showFlag" @touchmove.stop.prevent @mousewheel.stop.prevent class="u-demo">
			<view class='demo'>
				<view>
					<image src="../../static/images/demo.png" class="esuc" aria-hidden="true"></image>
				</view>
				<view class="content">{{ content }}</view>
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		name: 'demo',
		data() {
			return {
				showFlag: false,
				content: '弹出框里面的内容',
				showCancel: false
			}
		},
	}
</script>

<style scoped>
	.u-demo {
		position: fixed;
		z-index: 999;
		background:rgba(0,0,0,.6);
		height:2000px;
		width:100%;
		top:0;
		left:0;
		right:0;
		bottom:0;
		overflow:hidden;
	}
	.demo {
		position:fixed;
		width:260rpx;
		height:172rpx;
		background:rgba(0,0,0,.7);
		color:#fff;
		font-size:30rpx;
		text-align:center;
		padding-top:44rpx;
		padding-bottom:44rpx;
		top:520rpx;
		bottom:0;
		left:0;
		right:0;
		z-index:100;
		margin:0 auto;
	}
	.esuc {
		width:108rpx;
		height:108rpx;
		margin-bottom:20rpx;
	}
</style>

第二步,写个demo.js 文件,然后在这里把demo组件绑定到构造器上面

javascript 复制代码
import Vue from 'vue'
// 弹窗页面
import uDemo from './demo.vue'
// 弹窗构造器js
const popDemo = Vue.extend(uDemo);
// 生成弹窗的方法
uDemo.install = function(data) {
	let instance = new popDemo({
		data
	}).$mount();
	document.body.appendChild(instance.$el); // 挂载
	Vue.next(()=>{
		// 首次打开显示弹窗
		instance.showFlag = true
		setTimeout(function() {  // 1.5s后隐藏弹窗
			instance.showFlag = false
		},1500)
	})
}

第三步,在main.js 文件中将demo.js文件直接挂载到vue实例上面

javascript 复制代码
import uDemo from '@/components/uDemo/demo.js'
Vue.prototype.$alert = uDemo.install
相关推荐
憧憬成为web高手4 小时前
ACTF 12307复现
前端·bootstrap·html
wordbaby5 小时前
Axios 上传大文件崩溃:鸿蒙 RNOH 下 XHR 返回空响应头引发的"假失败"
前端·react native
wordbaby5 小时前
React Native 列表分页实战:下拉刷新与上拉加载的工程化方案
前端·react native
wordbaby6 小时前
脱离 Tab 栏的艺术:React Native 全屏子页面的导航架构实践
前端·react native·harmonyos
陈随易6 小时前
Redis 8.8发布,一定要更新
前端·后端·程序员
wordbaby6 小时前
React Native 新架构落地鸿蒙:跨三端政务级应用的工程实践与深度复盘
前端·react native·harmonyos
晓说前端7 小时前
第一篇:为什么学TypeScript?—— 优势、场景与环境搭建
javascript·ubuntu·typescript
excel8 小时前
为什么我推荐使用 Termius:现代 SSH 工具的完整体验
前端·后端
ZC跨境爬虫8 小时前
模块化烹饪小程序开发日记 Day7:(菜谱详情接口开发与JSON数据读取全流程)
前端·javascript·css·ui·微信小程序·json
এ慕ོ冬℘゜8 小时前
JS 前端基础面试题
开发语言·前端·javascript