webpack9-Vue中使用vue-router

webpack9-Vue中使用vue-router


1. 初始化npm

npm init -y

2. 安装

npm i webpack webpack-cli webpack-dev-server html-webpack-plugin -D

3. 安装vue等

npm i vue vue-router -S
npm i vue-loader vue-template-compiler -D

4. 在 package.json 中添加

"dev": "webpack-dev-server"

5. 编写配置文件 webpack.config.js

const path = require("path")
const webpack = require("webpack")
const htmlwebpackplugin = require("html-webpack-plugin")
const VueLoaderPlugin = require("vue-loader/lib/plugin")

module.exports = {
    entry: path.join(__dirname, "./src/index.js"),
    output: {
        path: path.join(__dirname, "./dist"),
        filename: "index.js"
    },
    mode: "development",
    devServer: {
        open: true,
        port: 3000,
        contentBase: "src",
        hot: true
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new htmlwebpackplugin({
            template: "./src/index.html",
            filename: "index.html"
        }),
        new VueLoaderPlugin()
    ],
    module: {
        rules: [
            {test: /\.vue$/, use: "vue-loader"}
        ]
    }
}

6. 编写 index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app"></div>
</body>
</html>

7. 编写 app.vue

<template>
    <div>
        <h1>app: {{name}}</h1>
    </div>
</template>

<script>
export default {
    data() {
        return {
            name: "Seven"
        }
    }
}
</script>

<style></style>

8. 编写入口文件 index.js

import Vue from "vue"

var vm = new Vue({
    el: "#app",
    render: el => el(app)
});

9. 接下来要使用 vue-router

在入口文件中导入 vue-router
然后手动安装 vue-router

// 导入 vue-router
import VueRouter from "vue-router"
// 手动安装 vue-router
Vue.use(VueRouter)

10. 创建两个组件 login.vue 和 register.vue

login.vue

<template>
    <div>
        <h1>登录组件</h1>
    </div>
</template>

<script></script>

<style></style>

register.vue

<template>
    <div>
        <h1>注册组件</h1>
    </div>
</template>

<script></script>

<style></style>

11. 在 index.js 文件中创建挂载路由

import Vue from "vue"
// 导入 vue-router
import VueRouter from "vue-router"
// 手动安装 vue-router
Vue.use(VueRouter)

// 导入app组件
import app from "./app.vue"
// 导入login和register组件
import login from "./templates/login.vue"
import register from "./templates/register.vue"

var router = new VueRouter({
    routes: [
        {path: "/login", component: login},
        {path: "/register", component: register}
    ]
})

var vm = new Vue({
    el: "#app",
    render: el => el(app),
    router  // 将路由挂在到vue实例中
});

12. 在 app.vue 中渲染路由

<template>
    <div>
        <h1>app: {{name}}</h1>
        <router-link to="/login">登录</router-link>
        <router-link to="/register">注册</router-link>
        <router-view></router-view>
    </div>
</template>

<script>
export default {
    data() {
        return {
            name: "Seven"
        }
    }
}
</script>

<style></style>

13. 运行

npm run dev

在这里插入图片描述


更新时间:2020-1-2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值