VueJS 不打开带有“/”路径的主页

VueJS not open home page with "/" route

我想显示一个带有 h1 文本的简单主页,但它不起作用。我配置了路由并将其添加到main.js。当我浏览到 localhost:8080 时,没有任何显示。我看不出它不起作用的原因。

main.js

import Vue from 'vue'
import App from './App'
import router from './router'

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

App.vue

<template>
  <div>
    <router-view/>
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

Home.vue

<template>
    <div>
        <h1>Home</h1>
    </div>
</template>

<script>
    export default {
        name: 'home'
    }
</script>

/router/index.js

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'

Vue.use(Router)

export default new Router({
    mode: 'history',
    routes: [
        {
            path: '/',
            name: 'Home',
            component: Home
        }
    ]
})

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title>client</title>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but client doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

@vue/cli 默认仅使用 vue 运行时,而不使用 vue compiler(如果要使用内联模板字符串,则需要编译器)

要解决此问题,您可以 turn on the runtimeCompiler 在您的 vue.config.js:

module.exports = {
  "runtimeCompiler": true
};

或者更改您的代码以改用 render() 函数:

new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

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

顺便说一下,如果您使用 @vue/cli,您可以在 vue create 期间选择 Manually select features
当您 select Router 作为一项功能时,您将获得一个使用 vue-router 引导的项目,该项目开箱即用。