uni-app使用全局组件及相关问题

本文介绍了在HBuilderX中使用Vue全局组件的步骤,包括在main.js和global.js中的配置。同时,探讨了从2.5.5版本开始的EasyCom组件模式,该模式简化了组件的使用流程,允许开发者直接在页面中使用符合特定目录结构的组件,无需额外引用和注册。文章还提到了组件库的批量安装和按需打包,以及这种模式如何提高开发效率。
摘要由CSDN通过智能技术生成

HBuilderX:2.9.8

Vue全局组件使用:

1. main.js

import Vue from 'vue'
import App from './App'
import store from '@/store/index'
import GlobalComponent from '@/components/global'


Vue.config.productionTip = false
App.mpType = 'app'

Vue.use(GlobalComponent);

const app = new Vue({
	store,
	...App
})
app.$mount()

组件多,就直接放在了一个js文件中

2. /components/global.js

import Card from './uni-card/uni-card.vue'
import CardHead from './uni-card-h/uni-card-h.vue'
import CardBody from './uni-card-b/uni-card-b.vue'

const component = {
	'uni-card': Card,
	'uni-card-h': CardHead,
	'uni-card-b': CardBody,
}

export default {
	install(Vue) {
		for (const name in component) {
			Vue.component(name, component[name])
		}
	}
}

看到最后o!

Q1. 组件不生效:

一开始目录结构是如下,手机端的全局组件并没有生效,电脑浏览器正常;

-|  uni-card

        -|  uni-card.vue

        -|  uni-card-h.vue

        -|  uni-card-b.vue

将目录结构修改为如下,手机端的全局组件正常生效

-|  uni-card

        -|  uni-card.vue

-|  uni-card-h

        -|  uni-card-h.vue

-|  uni-card-b

        -|  uni-card-b.vue


uni-app

写完上面的代码后,发现有一个组件,没有既全局引入,也没有在vue中引入,居然可以直接使用;然后将上面全局引入的代码注释掉,居然仍然可以正常使用

查找资料发现:HBuilderX 2.5.5起支持easycom组件模式

传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。easycom将其精简为一步。 只要组件安装在项目的components目录下,并符合components/组件名称/组件名称.vue目录结构。就可以不用引用、注册,直接在页面中使用。 如下:

<template>
    <view class="container">
        <uni-list>
            <uni-list-item title="第一行"></uni-list-item>
            <uni-list-item title="第二行"></uni-list-item>
        </uni-list>
    </view>
</template>
<script>
    // 这里不用import引入,也不需要在components内注册uni-list组件。template里就可以直接用
    export default {
        data() {
            return {

            }
        }
    }
</script>

不管components目录下安装了多少组件,easycom打包后会自动剔除没有使用的组件,对组件库的使用尤为友好。

组件库批量安装,随意使用,自动按需打包。以官方的uni-ui为例,在HBuilderX新建项目界面选择uni-ui项目模板,只需在页面中敲u,拉出大量组件代码块,直接选择,即可使用。大幅提升开发效率,降低使用门槛。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值