vue-router.js
<body> <script src='https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js'></script> <script src="./vue-router.js"></script> <div id='myApp'> <router-link to="/">主页</router-link> | <router-link to="/login">登录</router-link> <router-view></router-view> </div> <!-- 主页模板 --> <template id="main"> <div> <h1> 主页 <br> <input v-model='msg'> <br> <router-link to="/login/张三">去登录,并传值</router-link> <br> <router-link :to="'/login/'+msg">去登陆,传输入值</router-link> </h1> </div> </template> <script> var MainPage = Vue.component("mainCom", { template: '#main', data(){ return{ msg: "" } } }) var LoginPage = Vue.component("loginCom", { // 动态url路径传值, 会传入$route.params字段 template: "<h1>登录页:{{$route.params.name}}</h1>", created() { // 在路由跳转的组件中会生成一个$route对象,记录路由跳转信息,可用于路由传值和路由监听 console.log(this.$route) }, }) const router = new VueRouter({ routes:[ {path:'/', component: MainPage}, // 在路由配置中, 把路径后添加 /:变量名, 这种写法的路径叫动态url也叫友好型url // 在正常的url路径后添加/:, 路径不变, 可添加数据, 用于路径传值 // "/login/:name" 表示/login路径下传入一个变量名为name的值, 多个值/:name/:age {path:"/login/:name", component: LoginPage}, // 路由设置动态路径后, 普通路径/login, 访问不到动态路由地址, 所以, 如果需要的情况下,普通路径和动态路径都要写 {path:"/login", component: LoginPage} ] }) new Vue({ el: '#myApp', router }) // 总结: 路由传值方式二: 动态路由/动态url/友好url传值 // 1, 配: 在路由配置信息中, 把路径后添加 /:变量名 // {path:"/login/:name", component: LoginPage} // 2, 传: 在发送数据的组件中router-link路径后使用/拼接数据 传值 //<router-link to="/login/张三"></router-link> // 3, 接: 在接收数据的组件中, 使用this.$route.params接收数据 // <h1>{{$route.params.name}}</h1> </script></body>