Vue全局组件注册方法
匿名 · 更新于 2020/4/22
TypeScript模式注册全局组件
第1步、先创建一个全局组件,例如Nav.vue
<template> <div> <router-link to="/">Home</router-link> | <router-link to="/about">About</router-link> </div> </template><script> export default { name: 'Nav' } </script>
import Vue from 'vue' import App from './App.vue' import './registerServiceWorker' import router from './router' import store from './store' import Nav from './components/Nav.vue' //引入Nav组件new Vue({ router, store, render: h => h(App) }).$mount('#app')
Vue.component('Nav', Nav) //注册Nav组件为全局组件
第3步、在组件中调用引入子组件<Nav></Nav>即可
注意事项:此方案的正常实现,必须要求路由采用懒加载方式,否则刷新页面可能会导致全局组件无法生效,懒加载路由方式示例如下:
import Vue from 'vue'
import VueRouter, { RouteConfig } from 'vue-router'
const Home = () => import(/* webpackChunkName: "home" */ '../views/Home.vue')
Vue.use(VueRouter)
const routes: Array<RouteConfig> = [
{
path: '/',
name: 'Home',
component: Home
}
]
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
export default router
