Vue系列之 => 结合webpack使用vue-router

安装 vue-router

cnpm i vue-router -S

index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

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

</html>

main.js

import Vue from ‘vue‘
// 1,导入 vue-router包
import vueRouter from ‘vue-router‘
// 导入app组件
import app from ‘./app.vue‘
// 导入其他组件
import account from ‘./components/account.vue‘
import goodslist from ‘./components/goodslist.vue‘

// 2,手动安装vueRouter
Vue.use(vueRouter);

// 3,创建路由对象
var router = new vueRouter({
    routes : [
        // account goodslist
        { path : ‘/account‘ , component : account},
        { path : ‘/goodslist‘ , component : goodslist}
    ]
})

var vm = new Vue({
    el : ‘#app‘,
    render : c => c(app), // render会把el 指定的容器中所有的内容都清空覆盖
    // 所以不要把router-view和router-link直接写到 el 所控制的元素中。
    router
})
// 注意app这个组件是通过vm实例的render函数渲染的,render函数如果要渲染组件
// 渲染出来的组件只能放到el : ‘#app‘ 所指定的元素中去。
// account 和 goodslist组件是通过路由匹配监听到的,所以,这两个组件只能展示到
// 属于路由的<router-view></router-view>中去。

app.vue

<template>
    <div>
        <h1>app组件</h1>

        <router-link to="/account">account</router-link>
        <router-link to="/goodslist">goodslist</router-link>
        <router-view>

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

<script>
export default {

}
</script>

<style lang="">

</style>

account.vue和goodslist.vue组件为简单的template。

路由嵌套 

在account组件中加上 登录和注册

main.js

import Vue from ‘vue‘
// 1,导入 vue-router包
import vueRouter from ‘vue-router‘
// 导入app组件
import app from ‘./app.vue‘
// 导入其他组件
import account from ‘./components/account.vue‘
import goodslist from ‘./components/goodslist.vue‘
import login from ‘./components/login.vue‘
import register from ‘./components/register.vue‘
// 2,手动安装vueRouter
Vue.use(vueRouter);

// 3,创建路由对象
var router = new vueRouter({
    routes: [
        // account goodslist
        {
            path: ‘/account‘,
            component: account,
            children : [
                { path : ‘login‘ , component : login},
                { path : ‘register‘ , component : register}
            ]
        },
        {
            path: ‘/goodslist‘,
            component: goodslist
        }
    ]
})

var vm = new Vue({
    el: ‘#app‘,
    render: c => c(app), // render会把el 指定的容器中所有的内容都清空覆盖
    // 所以不要把router-view和router-link直接写到 el 所控制的元素中。
    router
})
// 注意app这个组件是通过vm实例的render函数渲染的,render函数如果要渲染组件
// 渲染出来的组件只能放到el : ‘#app‘ 所指定的元素中去。
// account 和 goodslist组件是通过路由匹配监听到的,所以,这两个组件只能展示到
// 属于路由的<router-view></router-view>中去。

account.vue

<template>
    <div>
        <router-link to="/account/login">登录</router-link>
        <router-link to="/account/register">注册</router-link>
        <router-view></router-view>
    </div>
</template>

<script>
export default {

}
</script>

<style lang="">

</style>

style中 lang属性和scoped 

<style lang="scss" scoped>
// scoped只让样式在当前组件生效
/* 普通的style标签只支持普通的样式 */
/* 要启用scss或less,需要为style元素设置lang属性 */
body {
  div {
      color: green;
  }
}
</style>

抽离路由模块

需要把vuerouter,和引入的组件,抽离到router.js

router.js     需要注意:main.js和router.js 都需要导入vue-router

// 导入其他组件
import account from ‘./components/account.vue‘
import goodslist from ‘./components/goodslist.vue‘
import login from ‘./components/login.vue‘
import register from ‘./components/register.vue‘
import vueRouter from ‘vue-router‘

// 3,创建路由对象
var router = new vueRouter({
    routes: [
        // account goodslist
        {
            path: ‘/account‘,
            component: account,
            children : [
                { path : ‘login‘ , component : login},
                { path : ‘register‘ , component : register}
            ]
        },
        {
            path: ‘/goodslist‘,
            component: goodslist
        }
    ]
})

// 向外暴露 router
export default router

原文地址:https://www.cnblogs.com/winter-shadow/p/10269441.html

时间: 2024-07-31 13:20:15

Vue系列之 => 结合webpack使用vue-router的相关文章

Webpack系列:在Webpack+Vue中如何将对后端的http请求转到https的后端服务器中?

在上一篇文章(Webpack系列:在Webpack+Vue开发中如何调用tomcat的后端服务器的接口?)我们介绍了如何将对于webpack-dev-server的数据请求转发到后端服务器上,这在大部分情况下就够用了. 然后现在问题又来了,在生产环境下接口一般采用https协议,如果我们要把数据请求转发到生产服务器上怎么办? 首先会想是不是把上一篇博文中提到的proxyTable改成https就可以了,如下:     proxyTable: {                '/appserve

webpack构建vue项目(再谈配置)

webpack配置起来确实麻烦,这不,之前用刚配好了vue1+的版本,结果在(部分)安卓机上测试,发现存在开启热加载(dev-server)的情况下不能识别vue语法的问题,试了很多方法,都没能很好的解决,最后索性将vue升级到2+,竟然就能识别了,好吧! 1.先分享一下webpack配置vue2+的一些不同(本人亲测): (1)dependencies中的vue默认安装2+,直接运行,会报如下错:[Vue warn]: Failed to mount component: template o

webpack构建vue项目(配置篇)

最近公司要求用vue重构项目,还涉及到模块化开发,于是乎,我专门花了几天的时间研究了一下webpack这个目前来看比较热门的模块加载兼打包工具,发现上手并不是很容易,现将总结的一些有关配置的心得分享出来,欢迎大神来拍砖... 一.新建一个项目目录,cd /d 定位进去,然后输入npm init,会提示你填写一些项目的信息,一直回车默认就好了,或者直接执行npm init -y 直接跳过,这样就在项目目录下生成了一个package.json文件. 二.接下来就是通过npm安装项目依赖项,命令行输入

一个基于ES6+webpack的vue小demo

上一篇文章<一个基于ES5的vue小demo>我们讲了如何用ES5,vue-router做一个小demo,接下来我们来把它变成基于ES6+webpack的demo. 一.环境搭建及代码转换 我们先搭建一下vue 的开发环境,根据我的一篇随笔<Vue开发环境搭建及热更新>,我们一步步搭建开发环境,project名为ES6-demo. 在之前我发表的一篇随笔< 理解最基本的Vue项目>中,说到了在放置组件和入口文件的src文件夹中,main.js文件就是入口文件,App.v

webpack配合vue.js实现完整的单页面demo

本篇文章主要是我在开发前研究了webpack+vue.js的单页面应用,因为需要用到node的npm,所以确保安装了node,建议官网安装最新的稳定版本.并且在项目中需要加载一些npm包,由于npm的服务器在国外,可能我们下载的过程会比较慢,所以建议用阿里的镜像cnpm安装,10分钟实时更新一次npm的镜像.具体的下载配置参考阿里的cnpm官网.本文章只是和大家探讨怎么利用webpack配合vue.js做一个单页面应用,具体关于vue里面的内容怎么写并不在本篇文章的介绍范围. 1. 定义我们de

webpack和vue的按需加载组件、console、抓包

1.webpack和vue的按需加载组件 webpack特有的懒加载文件的方式,很大的提升了webpack打包SPA应用的在性能方面. 而从webpack2以后require.ensure已经被import()替换. const Recommend = (resolve) => { import('components/recommend/recommend').then((module) => { resolve(module) }) } export default new Router(

VUE系列一:VUE入门:搭建脚手架CLI(新建自己的一个VUE项目)

一.VUE脚手架介绍 官方说明:Vue 提供了一个官方的 CLI,为单页面应用快速搭建 (SPA) 繁杂的脚手架.它为现代前端工作流提供了 batteries-included 的构建设置.只需要几分钟的时间就可以运行起来并带有热重载.保存时 lint 校验,以及生产环境可用的构建版本.更多详情可查阅 Vue CLI 的文档. 个人理解:在实际开发中都是通过脚手架快速搭建一个vue项目,当然也可以使用CDN的方式(具体请看官网) 使用脚手架的好处: 1. 脚手架是通过webpack搭建的开发环境

使用webpack搭建vue开发环境

最近几天项目上使用了vue.js作为一个主要的开发框架,并且为了发布的方便搭配了webpack一起使用.CSS框架使用的是vue-strap(vue 对bootstrap控件做了封装)这篇文章主要总结一下具体搭建的过程,和途中遇到的一些问题的解决办法 主要用到的工具 Vue webpack vue-strap vue-router 搭建步骤 1. 首先建立项目的目录结构 demo_project/ dist/ webpack生成的文件 src/ 源代码文件 img/ 图片文件 css/ css文

使用webpack打包Vue工程

本篇文章就是介绍如何使用webpack构建前端工程. 目标 本次的工程以Vue.js为主角,Vue.js是一款小巧优雅而且强大的轻量级mvvm框架,配合webpack模块化打包.制作出如下图的效果.仅仅搭一个框架,会用上很多插件和加载器. 环境准备 主要是一些全局的nodejs包 Nodejs npm webpack less ? 1 2 sudo npm install webpack -g // -g 代表全局安装webpack,调出命令行即可使用webpack命令 sudo npm ins