我在用Vue.js与vue cli.我 Select 了网页包设置.

主要的js

import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App'
import Companies from './components/pages/Companies'
import Income from './components/pages/Income'
import Login from './components/pages/Login'

Vue.use(VueRouter)

let router = new VueRouter()

router.map({
  '/companies': {
    component: Companies
  },
  '/income': {
    component: Income
  },
  'login': {
    component: Login
  }
})

router.start(App, 'body')

应用程序.vue

<template>
  <div>
    <router-view></router-view>
  </div>
</template>
<script>
import {Auth} from './lib/api'
import Loader from './components/Loader'

export default {
  components: {
    Loader
  },
  ready () {
    Auth.isLoggedIn().then(
      (response) => {
        if (response.data === false) {
          this.$router.go('/login')
        } else {
          this.$router.go('/companies')
        }
      },
      (response) => {
        this.$router.go('/login')
      }
    )
  }
}
</script>

在某些视图中使用Loader组件时,会收到以下警告.

[Vue warn]:未知自定义元素:-您是否正确注册了组件?对于递归组件,请确保提供"name"选项.

我在组件中提供了名称,但没有任何区别.我正在登录视图中使用loader组件

推荐答案

按照现在的设置方式,loader组件仅在应用程序组件的模板中本地可用.

路由对全局组件注册没有影响,就像没有路由一样:

// main.js, before all the router stuff:
import Loader from './components/Loader'
Vue.component('loader', Loader)

或者在登录组件中本地注册.就像你已经在应用程序中做的那样.vue,你知道怎么处理Loader.vue

Vue.js相关问答推荐

具有VUE身份验证的Azure AD

VueJS 中的 VisJS 时间轴:带有图像的项目放错了位置

如何在map中添加新的标记 onclick?

一个 div 组件中的 Vue.js 2.0 路由链接

为什么 Vue 路由/Webpack 开发服务器现在在页面刷新时显示无法获取/路径?

apache上的Vue-router,子目录下的SPA,只能通过重定向访问页面

如何更新手动安装的 vue 组件上的props?

Vue @click 不适用于存在 href 的anchor锚标记

Vue test-utils 如何测试 router.push()

使用 Blade/Mustache 模板混合 Laravel 和 Vue.Js

带有子菜单的 Vuetify 导航抽屉

vuetify:以编程方式显示对话框

如何在某些路由上隐藏全局组件(例如导航栏)?

取消选中单选按钮

Vue-i18n '无法读取 Proxy.Vue.$t 处未定义的属性 '_t'

'不提供名为'createRouter'的导出'' vue 3、vite 和 vue-router

将登录页面包含在单页应用程序中是否不安全?

Axios 捕获错误请求失败,状态码 404

升级到 vue-cli 3 后,HTML 中的空格消失了

在 Vue 单元测试中单击按钮时触发表单提交