使用的是uniapp,纪录一下使用vue-inset-loader 做小程序全局弹框的过程。
自定义一个弹框
<template>
<view class="login-box" v-show="isShow">
我是登录
</view>
</template>
<script>
export default{
data(){
return{
isShow: false
}
},
methods:{
show(){
this.isShow = true
},
close(){
this.isShow = false
}
}
}
</script>
<style lang="scss" scoped>
.login-box{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: red;
}
</style>
安装库
npm install vue-inset-loader --save-dev
vue.config.js(没有就创建一个)
var path = require("path")
module.exports = {
// 配置路径别名
configureWebpack: {
devServer: {
disableHostCheck: true
},
module: {
rules: [
{
test: /\.vue$/,
use:{
// loader: "vue-inset-loader"
// // 针对Hbuilder工具创建的uni-app项目
loader: path.resolve(__dirname,"./node_modules/vue-inset-loader")
// // 支持自定义pages.json文件路径
// options: {
// pagesPath: path.resolve(__dirname,'./src/pages.json')
// }
}
}
]
},
}
}
main.js
import LoginBox from "@/components/login/login.vue";
Vue.component('LoginBox',LoginBox)
pages.json配置文件中添加insetLoade
"insetLoader": {
"config":{
"LoginBox": "<LoginBox ref='loginBoxRef'></LoginBox>"
},
"label":["LoginBox"],
"rootEle":"view"
},
使用
在页面中就可以使用'this.$refs.loginBoxRef.show()'打开弹框了。