首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路由时无法检索组件模板

路由时无法检索组件模板
EN

Stack Overflow用户
提问于 2020-02-11 12:20:58
回答 1查看 32关注 0票数 0

我在用Vuejs。这是主要的js:

代码语言:javascript
复制
import Vue from 'vue'
import App from './App.vue'
import router from './router'

Vue.config.productionTip = false;


new Vue({
  render: h => h(App),
  router
}).$mount('#app')

这是路由器:

代码语言:javascript
复制
import Vue from 'vue';
import VueRouter from 'vue-router';
import ControlExcel from './components/ControlExcel';
import Login from "./components/Login";
import blog from './components/blog';
import file from './components/file';


Vue.use(VueRouter);

let routes = [
    {
        path: '/control-excel',
        name: 'ControlExcel',
        component: ControlExcel
    }
    ,
    {
        path: '/loginn',
        component: Login
    }
    ,
    {
        path: '/blog',
        name: 'blog',
        component: blog
    }
    ,
    {
        path: '/file',
        name: 'file',
        component: file
    },


];

export default new VueRouter({
    mode: 'history',
    base: "",
    routes
})

这个应用程序vue:

代码语言:javascript
复制
<template>
  <div id="app">
<!--    <img alt="Vue logo" src="./assets/logo.png">-->
<!--    <HelloWorld msg="Welcome to Your Vue.js App"/>-->

<!--    <ControlExcel />-->

<!--      <component v-bind:is="component" />-->
<span>abcd</span>




      <li class="nav-item">
          <router-link class="nav-link" to="/control-excel">exce</router-link>
      </li>
      <li class="nav-item">
          <router-link class="nav-link" to="/loginn">loginn</router-link>
      </li>

      <li class="nav-item">
          <router-link class="nav-link" to="/blog">blog</router-link>
      </li>

      <li class="nav-item">
          <router-link class="nav-link" to="/file">file</router-link>
      </li>

  </div>
</template>

<script>
// import HelloWorld from './components/HelloWorld.vue'
// import Login from './components/Login.vue'
// import ControlExcel from "./components/ControlExcel";
// import Login from "./components/Login";
import file from './components/file';
import Vue from 'vue';

Vue.component('file',file);

// import DownloadExcel from './components/DownloadExcel'

export default {
  name: 'app',
  components: {
      // Login,
      // ControlExcel,

  }
  ,
    data() {
        return {
            // component: "Login"
        }
    }
}
</script>

在本地主机:8080,我看到:

代码语言:javascript
复制
abcd
exce
loginn
blog
file

当我点击它们中的任何一个时,URl就会发生变化。例如,http://localhost:8080/file用于文件,但它没有带来组件。

例如,对于文件

代码语言:javascript
复制
  {
        path: '/file',
        name: 'file',
        component: file
    },

file.vue组件

代码语言:javascript
复制
<template>
    <div class="blog">
        <h1>fasfsasd</h1>
    </div>
</template>
<script>
    export default{
        name:'file'
        }

</script>
<style scoped>

</style>

这是目录:

代码语言:javascript
复制
src 
-components
--blog.vue
--ControlExcel.vue
--file.vue
--Login.vue
router.js
main.js
App.vue

为什么它也不能带来模板呢?

有动态组件,但我不想使用它,而且它似乎不是最佳实践,如下所示:

代码语言:javascript
复制
<component v-bind:is=”currentComponent”></component>

https://blog.logrocket.com/how-to-make-your-components-dynamic-in-vue-js/

EN

回答 1

Stack Overflow用户

发布于 2020-02-11 12:31:35

您的Vue-路由器不会更改主组件,但只将匹配的URL组件放入<router-view></router-view>中,而您没有。您需要将它添加到主组件中。

例如:

代码语言:javascript
复制
<div id="app">
  <span>abcd</span>
  <ul>
      <li class="nav-item">
          <router-link class="nav-link" to="/control-excel">exce</router-link>
      </li>
      <li class="nav-item">
          <router-link class="nav-link" to="/loginn">loginn</router-link>
      </li>

      <li class="nav-item">
          <router-link class="nav-link" to="/blog">blog</router-link>
      </li>

      <li class="nav-item">
          <router-link class="nav-link" to="/file">file</router-link>
      </li>
  </ul>

  <router-view></router-view>

</div>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60168675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档