0

一直webpack用于开发服务器的应用程序现在应该使用vite. 除路线外,一切似乎都运行良好(而且速度很快)。这些被简单地忽略,只App.vue呈现 的内容。

这是package.json

{
  "name": "mode",
  "version": "0.0.0",
  "scripts": {
    "dev": "vite"
  },
  "dependencies": {
    "vue": "^3.0.5",
    "vue-router": "^4.0.4"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^1.1.4",
    "@vue/compiler-sfc": "^3.0.5",
    "vite": "^2.0.2",
    "typescript": "~3.9.3"
  }
}

中央index.html是:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite App</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>

src/main.tsrouter加载:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

createApp(App).use(router).mount('#app')

该路由器定义在src/router/index.ts

import { createRouter, createWebHistory } from 'vue-router'
import SomePage from '@/views/SomePage.vue'

const router = createRouter({
  history: createWebHistory(),
  routes: [{
      path: '/some',
      name: 'Some',
      component: SomePage
  }]
})

export default router

(从未显示)src/views/SomePage.vue是:

<template>
  <div class="section">
    Some content on some page.
  </div>
</template>

这是(总是显示)App.vue

<template>
  <img alt="Vue logo" src="./assets/logo.png" />
  <HelloWorld msg="Hello Vue 3 + Vite" />
</template>

<script setup>
import HelloWorld from './components/HelloWorld.vue'
</script>

有了这个src/components/HelloWorld.vue

<template>
  <h1>{{ msg }}</h1>
  <p>
    Fancy text.
  </p>
</template>

<script setup>
import { defineProps } from 'vue'

defineProps({
  msg: String
})
</script>

我希望 http://localhost:3000/some 显示的内容SomePage.vue,但只App.vue呈现的内容,不管使用的路由。

指向我在这里缺少的内容以及为什么忽略精细路线的指针表示赞赏。

4

1 回答 1

2

您需要添加一个路由器视图才能转到路由页面。

如果您希望 SomePage 成为 App.vue 的一部分,只需这样做

<template>
  <img alt="Vue logo" src="./assets/logo.png" />
  <router-view />
  <HelloWorld msg="Hello Vue 3 + Vite" />
</template>
于 2021-02-24T17:20:41.247 回答