首页 > 编程语言 >2024-11-17 uniapp小程序之自定义 · 全局弹窗

2024-11-17 uniapp小程序之自定义 · 全局弹窗

时间:2024-11-17 23:31:03浏览次数:1  
标签:11 uniapp vue 自定义 globalModal loader Vue import store

效果图:

目录结构:

 共需要修改6个地方,开始前请安装一个依赖:vue-inset-loader

npm i vue-inset-loader

vue-inset-loader的GitHub地址:https://github.com/1977474741/vue-inset-loader

一:新建弹窗文件components/golbalModa.vue

<template>
  <view class="modal" v-if="globalModal.visible">
    <view class="modal-content"> 全局弹窗 </view>
  </view>
</template>

<script>
import { mapState } from "vuex";
export default {
  computed: {
    ...mapState(["globalModal"]),
  },
  methods: {},
};
</script>

<style scoped>
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 999;
}

.modal-content {
  background-color: #ffffff;
  border-radius: 4px;
  overflow: hidden;
  padding: 20px;
}
</style>

 二:新建store/index.js

import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

const store = new Vuex.Store({
  state: {
    globalModal: {
      visible: false,
    },
  },
  mutations: {
    setModal: (state, data) => {
      state.globalModal = data;
    },
  },
});

export default store;

如果你已经建了store,则在里面进行添加就行了,这里则不赘述。

三:在main.js中引入

import App from "./App";

import Vue from "vue";
import "./uni.promisify.adaptor";
import store from "@/store";
import globalModal from "@/components/globalModal";
Vue.component("globalModal", globalModal);

Vue.config.productionTip = false;
App.mpType = "app";
const app = new Vue({
  ...App,
  store,
});
app.$mount();

四:配置pages.json

{
    "insetLoader": {
        "config": {
            "confirm": "<globalModal ref='globalModal' />"
        },
        "label": [
            "confirm"
        ],
        "rootEle": "view"
    },
    "pages": [
        {
            "path": "pages/index/index",
            "style": {
                "navigationBarTitleText": "uni-app"
            }
        }
    ],
    "globalStyle": {
        "navigationBarTextStyle": "black",
        "navigationBarTitleText": "uni-app",
        "navigationBarBackgroundColor": "#F8F8F8",
        "backgroundColor": "#F8F8F8"
    },
    "uniIdRouter": {}
}

 注意:这里是重点,只要关心insetLoader这个对象就行了

五:配置vue.config.js

const path = require("path");
module.exports = {
  configureWebpack: {
    module: {
      rules: [
        {
          test: /\.vue$/,
          use: {
            loader: path.resolve(__dirname, "./node_modules/vue-inset-loader"),
          },
        },
      ],
    },
  },
};

六:在App.vue(或任意.vue文件引用)

<script>
export default {
  onLaunch: function () {
    this.$store.commit("setModal", {
      visible: true,
    });
  },
};
</script>

 完成以上步骤后请记得一定!一定!!一定!!!要重启项目!!!!否者不会生效!!!!

 

标签:11,uniapp,vue,自定义,globalModal,loader,Vue,import,store
From: https://www.cnblogs.com/iuniko/p/18551393

相关文章

  • 芒果Ultralytics最新YOLO11算法原理解析-包含最新详细-结构图,以及内附YOLO11各部分细
    YOLO11系列是YOLO家族中最先进的(SOTA)、最轻量级、最高效的模型,其表现优于其前辈。它由Ultralytics创建,该组织发布了YOLOv8,这是迄今为止最稳定、使用最广泛的YOLO变体。YOLO11将延续YOLO系列的传奇。在本文中,我们将探讨YOLO11文章目录YOLO11架构、YOLO11......
  • 《Django 5 By Example》阅读笔记:p211-p236
    《Django5ByExample》学习第7天,p211-p236总结,总计26页。一、技术总结1.messages(消息推送)django.contrib.messages。2.OAuth2Django里使用的是social-app-django这个package进行认证操作。3.开发环境使用HTTPS使用django-extensions,werkzeug,pyOpenSSL实现。4.第三方......
  • [考试记录] 2024.11.16 noip模拟赛14
    T1字符串构造机考虑将一个LCP条件拆分成两个,一个是相等的部分,使用并查集维护,另一个是不等的部分,两个串末尾的字符一定不相等,随便那啥维护。对于非法情况就是在同一个相等联通块内有不相等的条件。然后考虑从前往后贪心即可。#include<bits/stdc++.h>usingnamespacestd;#d......
  • 《痞子衡嵌入式半月刊》 第 111 期
    痞子衡嵌入式半月刊:第111期这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。本期刊是开源项目(GitHub:JayHeng/pzh-mcu-bi-weekly),欢迎提交issue,投稿或推荐你知道的嵌入式那些事儿。上期回顾:《痞子衡嵌入式半月......
  • MLLM_20241117
    Paper1题目:INFERENCEOPTIMALVLMSNEEDONLYONEVISUALTOKENBUTLARGERMODELS作者团队:KevinY.Li,SachinGoyal,JoãoD.Semedo,J.ZicoKolter(CMU)链接:https://arxiv.org/abs/2411.033121.论文试图解决什么问题?是否是一个新问题?论文试图解决VLMs推理阶......
  • NOIP 模拟 11
    T1暴力操作(opt)类似背包的处理出来除以每个数的最小代价,然后直接二分check即可,细节就是处理前后要做后缀min,然后求出\(\lfloor\frac{a}{x}\rfloor\lemid\)的最小\(x\),可以通过整除分块的套路,\(x=\lfloor\frac{a}{mid+1}\rfloor+1\)。T2异或连通(xor)trie树上的一个子树......
  • 11.17 鲜花
    11.17鲜花(RMQ专题)哈哈,回家看到朴彩英这个歌绷不住了。不是吧,姐?推歌-박채영《아파트》채영이가좋아하는랜덤게임랜덤게임Gamestart아파트아파트아파트아파트아파트아파트Uh,uhhuhuhhuh아파트아파트아파트아파트아파트아파트Uh,uhhuhuhhuhKissy......
  • 201117 noi plus 模拟赛
    省流:\(40+85+48+0\)。逆天绿紫黑黑。不能再挂分了,t1\(100\to40\),t2\(100\to85\),t3\(84\to48\)。T1给一个\(n\timesm\)的网格图,每个点只能是#或.或S或T,若这个点为#则这个点是障碍,不能到达,若是.则是空地,可以到达,S是起点,T是终点。每次你可以走四联......
  • 【预训练-微调】迁移学习项目实战自定义数据集宝可梦精灵-学习笔记
    本学习笔记来源于B站:深度学习—迁移学习项目实战自定义数据集宝可梦精灵。在本预训练-微调代码中,重点要学习的内容包括:加载官方提供的经典网络架构resnet18和已经训练好的模型,对最后一层全连接层进行修改,改为适合自己任务的网络架构。在此基础上,训练最后一层全连接层,并保存最......
  • 24.11.17
    Heoi好题分享He(ngEr)oi好题分享怎么每次NT都找黑啊/jkP5362NT的关注@Nt_Yester谢谢喵欠着对于\(\textbf{T.M.}\)的序列除了题里那个鬼畜定义还有几种生成方式:初始令\(T_0=0\),然后每次将原串按位取反拼接到原串后。\(T_i=\operatorname{popcount}(i)\b......