Skip to content

uniapp 组件注册使用

局部组件注册使用

js
<template>
  <view>
    <EmptyData/>
  </view>
</template>

<script>
js
import emptyData from '@/components/emptyData.vue'

全局组件注册

自定义全局组件,需要在 main.js 中注册,比如我们定义一个没有数据时候的组件 emptyData.vue

在 main.js 中注册组件

js
import Vue from 'vue'
import emptyData from '@/components/emptyData.vue'
Vue.component('EmptyData', emptyData)

全局组件注册后,在页面中使用

js
<template>
  <view>
    <EmptyData/>
  </view>
</template>

vue3项目中使用全局组件

这里我们就把上面的组件在我们项目之中进行使用,官方给我们默认提供的部分是这样子的

js
import App from './App'
// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
	...App
})
app.$mount()
// #endif

// #ifdef VUE3
import {
	createSSRApp
} from 'vue'
export function createApp() {
	const app = createSSRApp(App)
	return {
		app
	}
}
// #endif

引入并且注册我们的组件,还可以继续优化抽离组件部分

js
import App from './App'
import emptyData from '@/components/emptyData.vue'

// 注册组件
const registerGlobalComponents = (Vue) => {
  Vue.component('EmptyData', emptyData)
}

// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'

registerGlobalComponents(app)// Vue 3 中注册组件
const app = new Vue({
	...App
})
app.$mount()
// #endif

// #ifdef VUE3
import {
	createSSRApp
} from 'vue'
export function createApp() {
	const app = createSSRApp(App)
	registerGlobalComponents(app)// Vue 3 中注册组件
	return {
		app
	}
}
// #endif

Released under the MIT License.