将组件直接绑定到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
相关推荐
书山有路_邓30 分钟前
vscode 如何鼠标双击时选择带有-的
前端
张三风啊3 小时前
vue config 接口地址配置
前端·javascript·vue.js
多情码农无情键3 小时前
浏览器漫谈HTML--2.2从表单标签看vue的响应式系统 理论+实战
前端·javascript·html
Uluoyu3 小时前
Vue.Draggable使用nested-with-vmodel进行拖拽
前端·javascript·vue.js
北极糊的狐3 小时前
vue页面成绩案例(for渲染表格/删除/添加/统计总分/平均分/不及格显红色/输入内容去首尾空格trim/输入内容转数字number)
前端·javascript·vue.js
边洛洛4 小时前
路由传参、搜索、多选框勾选、新增/编辑表单复用
前端·javascript·vue.js
breakthrough_014 小时前
创建一个简单的 Nuxt.js 应用
开发语言·javascript·ecmascript
OEC小胖胖5 小时前
Vue 3 中 onUnload 和 onPageScroll 使用详解
前端·javascript·vue.js·前端框架·web
秋田君6 小时前
uniapp中使用Mescroll实现下拉刷新与上拉加载项目实战
javascript·uni-app
川石教育7 小时前
Vue前端开发-slot传参
前端·vue.js·前端框架·前端开发·slot组件