首页 > 解决方案 > 无法从 vue 导入 vue

问题描述

尝试使用 vue.js 和 vue-router.js 演示路由,但得到 SyntaxError "Cannot use import statement outside a module"。我正在尝试从正确的位置导入 vue。下面是树打印出来的。我没有正确导入 vue。谢谢你。

树打印出来:

.
├── index.html
├── index.js
├── js
│   ├── vue-router.js
│   └── vue.js
└── src
    ├── App.vue
    ├── AppRouter.vue
    ├── ArticlesPage.vue
    └── HomePage.vue

索引.html

<!DOCTYPE html>
<html>
  <head>
    <title>Vue app</title>
  </head>
  <body>

    <div id="app">
    </div>

  </body>
  <script src="js/vue.js"></script>
  <script src="js/vue-router.js"></script>
  <script src="index.js"></script>
</html>

index.js

import Vue from "./js/vue"; // errors here
import App from "./src/App";

const app = new Vue({
  el: "#app",
  render(h) {
    return h(App);
  }
});

标签: javascriptvue.js

解决方案


codeandbox.io 项目


.
├── package.json
├── public
│   ├── index.html
│   └── favicon.ico
└── src
    ├── assets
    │   └── logo.png
    ├── components
    │   └── HelloWorld.vue
    ├── router
    │   └── index.js
    ├── views
    │   └── Home.vue
    │   └── About.vue
    ├── App.vue
    └── main.js

主.js

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

Vue.config.productionTip = false;

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

路由器/index.js

import Vue from 'vue';
import VueRouter from 'vue-router';

Vue.use(VueRouter);

const routes = [
    {
        path: '/',
        name: 'home',
        component: () => import('../views/Home.vue')
    },
    {
        path: '/about',
        name: 'about',
        component: () => import('../views/About.vue')
    }
];

const router = new VueRouter({
    mode: 'history',
    routes
});

export default router;

应用程序.vue

<template>
  <div id="app">
    <router-link :to="{ name: 'home' }">HOME</router-link>
    <router-link :to="{ name: 'about' }">ABOUT</router-link>
    <router-view />
  </div>
</template>

<script>
export default {
  name: "App",
};
</script>

视图/Home.vue

<template>
    <div id="home">
        <img width="25%" src="../assets/logo.png">
        <HelloWorld msg="Hello Vue from Home page!"/>
    </div>
</template>

<script>
import HelloWorld from "../components/HelloWorld";

export default {
    name: "Home",
    components: {
        HelloWorld
    }
};
</script>

推荐阅读