【解决】uniapp的全局公共组件(不用在每个页面引入组件标签),各平台均可使用!!!!

这篇具有很好参考价值的文章主要介绍了【解决】uniapp的全局公共组件(不用在每个页面引入组件标签),各平台均可使用!!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

感谢滚动君大佬提供的思路,但是此方法只适用于微信小程序

app端之所以不能用的关键原因在于不能找到resourcePath原始路径,不像小程序会提供一个路径区分哪些文件来自组件哪些文件来自页面,如果不做区分,那么页面栈就会超载,无法显示。

既然它自身不能提供路径,那么我们可以修改源码,路径在D:\Hbuild\plugins\uniapp-cli\node_modules@dcloudio\vue-cli-plugin-uni\packages\vue-loader\lib\loaders\templateLoader.js
的templateLoader.js文件中修改代码如图:

【解决】uniapp的全局公共组件(不用在每个页面引入组件标签),各平台均可使用!!!!,uni-app
在compilerOptions方法体中的最后一行加上
resourcePath: this.resourcePath
注意上一行的逗号不要忘了
然后在项目里面新建一个文件vue.config.js
填以下内容

module.exports = {
  
  chainWebpack: config => {
  	config.module.rule('vue').use('vue-loader').loader('vue-loader').tap(options => {
  		const compile = options.compiler.compile
  		options.compiler.compile = (template,...args) => {
			
			
			
			//用来区分组件还是页面
			if(args[0].resourcePath.search("pages")!=-1){
				
				//防止app端重复加载而重复添加组件
				if(template.search("<upload_file/>")==-1){
					 template = template.replace(/[\s\S]+?<[\d\D]+?>/, _ => `${_}
							  <‘upload_file ’/>
					 `)
				}
			}
  			return compile(template,...args)
  		}
  		return options
  	})
  }
  
}




差点忘了你的组件必须是全局挂载的,在mian.js里面添加

import upload_file from '@/components/upload_file.vue'
 
Vue.component('upload_file', upload_file)

下面我自定义悬浮组件的源码
upload_file.vue

<template>
<view>
	<uni-fab :pattern="pattern"  :horizontal="horizontal" :vertical="vertical" @fabClick="upload_data" ></uni-fab>
</view>
</template>

<script>
	export default {
		name: "",
		data() {
			return {
				
				vertical: 'bottom',
				horizontal: 'right',
				pattern: {
					color: '#7A7E83',
					backgroundColor: '#fff',
					selectedColor: '#007AFF',
					buttonColor: '#007AFF',
					iconColor: '#fff',
					icon:'upload-filled'
				},
				
		}
	},
	methods:{
		upload_data(){
			this.$company.common({
			
			}, {
				'api':'unline'
			}).then(e => {
				console.log(e)
			})
		}
	}
}
</script>

<style lang="scss" scoped>
/deep/	.uni-fab__circle--rightBottom[data-v-137a85dc] {
	    right: 15px;
	    bottom: 30px;
	    right: calc(70rpx + var(--window-right));
	    bottom: calc(150rpx + var(--window-bottom));
		}
	
	
</style>

都填完后重新加载一遍

注:如果是需要在小程序运行需要将该文件复原。文章来源地址https://www.toymoban.com/news/detail-532654.html

到了这里,关于【解决】uniapp的全局公共组件(不用在每个页面引入组件标签),各平台均可使用!!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • uniapp中全局页面挂载组件(小程序,h5)

    uniapp中全局页面挂载组件(小程序,h5)

    1.uniapp 自带的 easycom 使用easycom的好处 1、简化组件的使用,提高开发效率 2、不论组件目录下安装了多少组件,easycom打包后会自动剔除没有使用的组件,对组件库的使用尤为友好。 说明 easycom方式引入的组件 无需在页面内import ,也 不需要在components内声明 ,即可在任意页面

    2024年02月05日
    浏览(7)
  • uniapp 微信小程序 纯js文件中引入自定义modal组件(无需所有页面手动引入组件)

    工具:uniapp 开发端:微信小程序 其他:uview 2.0 场景:接口请求统一封装中需要对接口返回token失效的情况做modal显示,引导用户退出小程序,我的想法是将modal的默认confirm按钮替换成小程序自带的退出方法: 这样用户点击确认按钮就能退出小程序,因此uni.showModel不满足需求

    2024年02月09日
    浏览(48)
  • #Uniapp:引入fonts&目录结构&全局样式&启动模式&全局变量

    uni-app 运行到微信开发者工具需要注意 小程序路径需要配置, 小程序端口需要开启 目录结构 开发规范 遵循vue和小程序混合 全局配置样式 全局 pages.json 局部的样式会覆盖全局的样式 https://uniapp.dcloud.net.cn/collocation/pages#style 可以单独设置h5的样式 tabBar tabBar 中的 list 是一个数

    2024年01月24日
    浏览(9)
  • uniapp引入全局js,vue2/vue3不同方式引入

    uniapp引入全局js,vue2/vue3不同方式引入

    Hi I’m Shendi uniapp引入全局js,vue2/vue3不同方式引入 最近写小程序,个人开发,选用了 uni-app 进行开发 选用的 vue3 版本 因为我用的 vue3 版本,在这里踩了没学过vue3的坑,用vue2引入全局js的方式使用,导致undefined… Vue2 版引入全局js的方法如下 将js放到项目内,一般放到自建的

    2024年02月03日
    浏览(18)
  • elementPlus——图标引入+批量注册全局组件——基础积累

    elementPlus——图标引入+批量注册全局组件——基础积累

    因为我们要根据路由配置对应的图标,也要为了后续方便更改。因此我们将所有的图标注册为全局组件。(使用之前将分页器以及矢量图注册全局组件的自定义插件)(所有图标全局注册的方法element-plus文档中已给出) 经过上面的步骤,就可以把 elementPlus 自带的 icon 图标全

    2024年02月12日
    浏览(8)
  • uniapp 小程序公共组件引用,无需导入和注册,直接使用

    uniapp 小程序公共组件引用,无需导入和注册,直接使用

    相关文档链接:https://uniapp.dcloud.net.cn/tutorial/vue-components.html 页面引入组件方式 第一种:传统vue规范 第二种:通过uni-app的easycom 无需导入组件,无需注册组件,只要按照如下格式创建组件( 符合‘components/组件名称/组件名称.vue’目录结构,easycom方式可直接使用组件 ),创建

    2024年02月16日
    浏览(9)
  • Element组件完整引入、按需引入、样式修改(全局、局部)、简单安装less以及npm命令证书过期等

    Element组件完整引入、按需引入、样式修改(全局、局部)、简单安装less以及npm命令证书过期等

    npm i element-ui -S 在 main.js 中写入以下内容: 以上代码便完成了 Element 的引入。需要注意的是,样式文件需要单独引入。 借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。 首先,安装 babel-plugin-component: npm install babel-plugin-component -D 然后,将

    2024年01月23日
    浏览(10)
  • Vue3 - vite 引入本地图片方法,页面引入本地静态资源图像详细教程,解决 UI 前端组件库的图片属性无法使用本地图像问题(无论是本地开发还是打包部署,本地图片的路径正常可用)

    Vue3 - vite 引入本地图片方法,页面引入本地静态资源图像详细教程,解决 UI 前端组件库的图片属性无法使用本地图像问题(无论是本地开发还是打包部署,本地图片的路径正常可用)

    在 webpack 中通常用 require() 来引入静态图片,但在 vite 中这种方法就不行了。 本文实现了 在 vue3+vite 项目开发中,实现引入本地图片(静态资源),并且 build 打包后依然正常运行, 支持普通 img 标签使用,也支持 UI 组件库的各种 “图片属性” 当参数进行使用。 如下图所示

    2024年02月08日
    浏览(85)
  • uniapp 全局 组件

    UniApp 是一种跨平台的应用开发框架,可以使用 Vue.js 开发一次,生成 iOS、Android、H5、小程序等多个平台的应用。 UniApp 中的组件可以分为两类:全局组件和局部组件。全局组件是可以在整个应用的任何地方使用的组件,而局部组件则只能在定义它的页面或组件内使用。 要使用

    2024年02月14日
    浏览(5)
  • uniapp注册全局组件

    uniapp注册全局组件

    有一些组件可能会被很多个页面使用到,比如说,自定义的导航栏,如果在每一个页面都引用一次就很麻烦了,这个时候可以将该组件注册为全局组件了。 第一种方法:easycom组件模式 官方描述:https://uniapp.dcloud.io/collocation/pages?id=easycom 将组件安装在项目的components目录下,并

    2024年02月16日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包