将组件直接绑定到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
相关推荐
工业甲酰苯胺5 小时前
TypeScript枚举类型应用:前后端状态码映射的最简方案
javascript·typescript·状态模式
brzhang5 小时前
我操,终于有人把 AI 大佬们 PUA 程序员的套路给讲明白了!
前端·后端·架构
止观止6 小时前
React虚拟DOM的进化之路
前端·react.js·前端框架·reactjs·react
goms6 小时前
前端项目集成lint-staged
前端·vue·lint-staged
谢尔登6 小时前
【React Natve】NetworkError 和 TouchableOpacity 组件
前端·react.js·前端框架
Lin Hsüeh-ch'in6 小时前
如何彻底禁用 Chrome 自动更新
前端·chrome
augenstern4168 小时前
HTML面试题
前端·html
张可8 小时前
一个KMP/CMP项目的组织结构和集成方式
android·前端·kotlin
G等你下课9 小时前
React 路由懒加载入门:提升首屏性能的第一步
前端·react.js·前端框架
谢尔登9 小时前
【React Native】ScrollView 和 FlatList 组件
javascript·react native·react.js