每一次学习,虽然学习的进度非常慢,但是要多做笔记,做多了,自然就掌握的多一点!

有一个痕迹,回头复习的时候,你会很开心,因为是你自己写的,及时很烂,但是都没有任何关系,坚持就好!

 

好,我们开始!

1, 新建一个目录: 

vue 路由写法

 

1, npm init -y 

这个时候:

vue 路由写法

为啥用webpack 打包写,因为可以采用es6 的模块化写!

2, npm i vue vue-router css-loader style-loader -D

3, webpack.config.js 

var path = require('path'); 

module.exports = {

	mode:"development",
	// entry: {
	//     app: './src/action.js',
	//     vendors: './src/action2.js'
 //  	},
 	entry:"./src/vm.js",
	output: {
	    path: path.resolve(__dirname, 'dist'),
	    filename: 'bundle.js'
    },
    module: {
	    rules: [
	      { test: /\.css$/, use: ['style-loader','css-loader'] }	   
	    ]
 	 }

};

4, src 目录下的vm.js

这个是入口文件:

import Vue from "vue/dist/vue.esm.js";
import VueRouter from "vue-router";
// import  '../css/my.css'
import router from "./router"
Vue.use(VueRouter);

new Vue({
	el: "#app",
	data:{
		name:"action"	
	},
	router
});

上面的写法,就是和我们的写法差不多! 只是变成模块化的写法了!

以前的写法:

<!DOCTYPE html>
<html>
<head>
	<title>action</title>

	<script type="text/javascript" src="vue.js"></script>
</head>
<body>

	<div id="c">
				<label for="id1">dsfsdfsd</label>
				<input  id = "id1" type="radio" v-model="name" value="text"/>	
		
	</div>


		<script type="text/javascript">
				
		var vm = 	new Vue({
				el:"#c",
				data:{
					name:'text'
				}
			});

		</script>	
</body>
</html>

以上是直接引用库的方式,现在是es6模块化的方式

 

现在我们看下 

vue 路由写法

 

显然,最后我们的webpack 还是会把我们所写的代码全部打包到 dist/bundle.js 中!

vue 路由写法

3, 路由列表的写法!

router.js

import VueRouter from 'vue-router';
import a from '../routers/a.js';
// import b from '../routers/b.js';
import header from '../routers/headerComp.js';
import {router2 ,r} from "../routers/b.js"
var router  = new VueRouter({
	routes:[
		{
			path:"/a",
			components:{
				default: a,
				news:header
			}
		},
		{
			path:"/b",
			components:{
				default: r,
				news:header
			},
			children:router2
		}
	]		
});

export default router;

 

我先把 这个 几个组件先给它贴出来!

a.js

export default {
	template:"<h2>aaa</h2>"
}

b.js



import VueRouter from 'vue-router';

export let   r =  {
	template:`
	<div>
		<h2>bbb</h2></br>
		<router-view></router-view>	

	</div>	

	`
}


export let  router2 = [
		{
			path:"b1",
			component:{
				template:"<h2>b1</h2>"
			}
		},
		{
			path:"b2",
			component:{
				template:"<h2>b2</h2>"
			}
		}
	]			
;



headerComp .js

//  es6 writeStyle
export default {
	template:"<h2>header</h2>"
}

 

都贴出来之后,就好看了!

1, 一个URL地址中,有多个视图,那么多个视图的写法如下:

vue 路由写法

 

vue 路由写法

 

我们重新理解下, 一个/b 的URL地址, 有两个视图 需要填充,每个视图都有name 属性,那么就根据那么属性

找到对应的组件进行填充就行了!


嵌套路由的写法!

vue 路由写法

vue 路由写法

在/b 下有子路由,那么就在/b 路由下挂载子路由,同时也要提供要填充的容器!

 

以上写法有点乱,所以下一节,我会把原来没有使用模块化的写法,贴出来!

实际上,上面都是vue1.x 写法,还是不常用,最后还是要用2.x 写法!

 

相关文章: