vue——46-webpack打包vue-路由、嵌套路由、样式设置、独立路由 router.js

关于 webpack 打包教程请看:webpack 打包文件

一、路由

在这里插入图片描述
在这里插入图片描述

main.js 中

1.引入 vue-router 包

安装命名:cnpm i vue-router -S

import Vue from 'vue';
import app from './app.vue';

import VueRouter from 'vue-router';
2.手动安装 VueRouter
Vue.use(VueRouter);
3.导入组件
import account from './main/Account.vue';
import goodslist from './main/GoodsList.vue';

Account.vue 和 GoodsList.vue 组件内容(注:这两个是新建的 .vue 模板文件)

<template>
    <div>
        <h1>这是 Account 组件!</h1>
    </div>
</template>

<template>
    <div>
        <h1>这是 GoodsList 组件!</h1>
    </div>
</template>
4.创建路由对象
let router = new VueRouter({
    routes: [
        {path: '/account', component: account},
        {path: '/goodslist', component: goodslist},
        {path: '/', direction: goodslist}
    ]
});
5.将路由对象挂载到 vm 上
let vm = new Vue({
    el: '#app',
    render: c => c(app),
    // 注意: render 会把 el 指定的容器所有内容都覆盖,所以不要把路由中的
    // router-view 和 router-link 直接写到 el 所控制的元素中,而是写进 render
    // 所引模块中去

    // 5.将路由对象挂载到 vm 上
    router
});

app.vue 中

6.引入路由组件
<template>
    <div>
        <h1>这是 App 组件!</h1>
        <!-- 6.引入路由组件 -->
        <router-link to="/account">Account</router-link>
        <router-link to="/goodslist">GoodsList</router-link>

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

二、嵌套路由

在这里插入图片描述
在这里插入图片描述

main.js 中

7.导入 Account 的两个嵌套子组件
import login from './subcom/login.vue';
import register from './subcom/register.vue';

login.vue 和 register.vue 组件内容(注:这两个是新建的 .vue 模板文件)

<template>
    <div>
        <h3>这是 Login 嵌套组件!</h3>
    </div>
</template>

<template>
    <div>
        <h3>这是 Register 嵌套组件!</h3>
    </div>
</template>
8.创建嵌套子路由对象
let router = new VueRouter({
    routes: [
        {
            path: '/account',
            component: account,
            
            // 嵌套子路由对象
            children: [
                {path: 'login', component: login},
                {path: 'register', component: register},
                {path: '/', component: register}
            ]
            
        },
        {path: '/goodslist', component: goodslist},
        {path: '/', direction: goodslist}
    ]
});

Account.vue 中

9.引入嵌套子路由组件
<template>
    <div>
        <h1>这是 Account 组件!</h1>

        <!-- 引入嵌套路由组件 -->
        <router-link to="/account/login">登录</router-link>
        <router-link to="/account/register">注册</router-link>

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

三、样式设置

在每个组件的样式块可以定义全局样式和组件内部样式

在这里插入图片描述
scoped 是利用给当前模板 div 添加 属性选择器 来区分各个模板组件

login.vue 内部
在这里插入图片描述

<style scoped>
    /* 注意:不加上面的scoped,所设置的样式会显示为全局样式,设置了,
    则只是用于当前的组件 */
    /* 推荐:只要咱们的 style 标签,是在 .vue 组件中定义的,那么,
    推荐都为 style 开启 scoped 属性 */
    div {
        color: blue;
    }
</style>

register.vue 内部
在这里插入图片描述

<style lang="scss" scoped>
    /* 注意:普通的 style 标签支持普通的样式设置,
    如果想要启用 scss 或 less,需要为style 元素,设置 lang 属性 */
    body {
        div {
            color: red;
        }
    }
</style>

四、独立路由 router.js

新建 router.js ,把所有路由模块导进去,后期方便管理

// 引入 vue-router 包
import VueRouter from 'vue-router';

// 导入组件
import account from './main/Account.vue';
import goodslist from './main/GoodsList.vue';

// 导入 Account 的两个子组件
import login from './subcom/login.vue';
import register from './subcom/register.vue';

// 创建路由对象
let router = new VueRouter({
    routes: [
        {
            path: '/account',
            component: account,
            children: [
                {path: 'login', component: login},
                {path: 'register', component: register},
                {path: '/', component: register}
            ]
        },
        {path: '/goodslist', component: goodslist},
        {path: '/', direction: goodslist}
    ]
});

// 暴露 路由对象
export default router;

main.js 中

import Vue from 'vue';
import app from './app.vue';

// 引入 vue-router 包
import VueRouter from 'vue-router';

// 手动安装 VueRouter
Vue.use(VueRouter);

// 导入自定义路由模块
import router from './router.js';

let vm = new Vue({
    el: '#app',
    render: c => c(app),
    router
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值