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
Vue系列之 => 结合webpack使用vue-router的更多相关文章
- Vue系列(2):Vue 安装
前言:关于页面上的知识点,如有侵权,请看 这里 . 关键词:小白.Vue 安装.Vue目录结构.Vue 构建页面流程 ? 初学者安装 vue 用什么好 大家都知道,学 Vue 最好还是去官网学,官网写 ...
- webpack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- webpack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- webpack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
- Vue系列之 => webpack结合vue使用
安装 npm i vue -S , 在html页面中放一个容器绑定到el上. 修改webpack.config.js , 在与entry , output节点平级加上 resolve 节点. res ...
- Vue系列(三):组件及数据传递、路由、单文件组件、vue-cli脚手架
上一篇:Vue系列(二):发送Ajax.JSONP请求.Vue生命周期及实例属性和方法.自定义指令与过渡 一. 组件component 1. 什么是组件? 组件(Component)是 Vue.js ...
- webpack构建vue项目(再谈配置)
webpack配置起来确实麻烦,这不,之前用刚配好了vue1+的版本,结果在(部分)安卓机上测试,发现存在开启热加载(dev-server)的情况下不能识别vue语法的问题,试了很多方法,都没能很好的 ...
- webpack构建vue项目(配置篇)
最近公司要求用vue重构项目,还涉及到模块化开发,于是乎,我专门花了几天的时间研究了一下webpack这个目前来看比较热门的模块加载兼打包工具,发现上手并不是很容易,现将总结的一些有关配置的心得分享出 ...
- webpack配合vue.js实现完整的单页面demo
本篇文章主要是我在开发前研究了webpack+vue.js的单页面应用,因为需要用到node的npm,所以确保安装了node,建议官网安装最新的稳定版本.并且在项目中需要加载一些npm包,由于npm的 ...
随机推荐
- Kali Linux常用服务配置教程获取IP地址
Kali Linux常用服务配置教程获取IP地址 下面以Kali Linux为例,演示获取IP地址的方法 (1)设置网络接口为自动获取IP地址.在Kali Linux的收藏夹中单击图标,将显示所有的程 ...
- hwy题目选讲
\[ f(n) = n/5 + f(n/5)\\ g(n) = (n\mod10)! * g(n/5)\mod 5\\ ans = f(n)*inv(2^g(n))\\ \]
- python一些语法糖用法
@修饰符 '@'符号用作函数修饰符是python2.4新增加的功能,修饰符必须出现在函数定义前一行,不允许和函数定义在同一行.也就是说@A def f(): 是非法的. 只可以在模块或类定义层内对函数 ...
- PHP文件上传大小限制问题
一.Thinkphp方面限制 $upload->maxSize = 31457280 ; //设置附件上传大小 二.七牛方面限制: 'UPLOAD_FILE_QINIU' => ...
- python dgango简介 安装 多表查询
一.socket服务器 import socket sk=socket.socket() sk.bind(("127.0.0.1",8890)) sk.listen() while ...
- Unity进阶----AssetBundle_02(加载依赖关系及网络资源)(2018/10/31)
网络资源加载: string path ="file://"+ Application.streamingAssetsPath + "\\windows\\123&quo ...
- fatal error LNK1120: 11 unresolved externals
一般原因是函数声明没有定义,或者c++文件没有包含include进来
- mac下git安装与使用
1.下载git客户端,下载地址为:https://git-scm.com/download/mac 2.打开安装包,可以看到此时的界面为: 我们需要把.pkg的安装包安装到系统当中.我双击了安装包 ...
- VueJS教程
文档资料参考: 参考:https://cn.vuejs.org/ 参考:Vue-Cli(客户端) 参考:创建一个Vue项目 参考:https://codesandbox.io 参考:https://c ...
- ip通信第七周
局域网的优点:1.具有较高的数据传输率 2.具有较低的误码率 3.具有较低的时延 4.能进行广播 网桥的基本特征:1.网桥在数据链录层上实现局域网互连 2.网桥能够互连两个采用不同数据链路层协议,不同 ...