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?name=张三&age=20">去登录,并传值</router-link> <br> <router-link :to="'/login?name='+msg">去登陆,传输入值</router-link> <button @click="btnClick">去登录</button> </h1> </div> </template> <script> var MainPage = Vue.component("mainCom", { template: '#main', data(){ return{ msg: "" } }, methods: { btnClick(){ // 使用js代码实现路由跳转就是 编程式导航跳转 // router : 全局唯一的路由配置对象, 可用于路由跳转 // $route : 每一个路由跳转的组件都有的路由信息对象 router.push("/login"); // 直接跳转 // 跳转并传值 router.push("/login?name=张三") router.push("/login/张三") router.push({ path: "/login", query: {name: "张三"} }) router.push({ name: "myLogin", params: {name: '张三'} }) } }, }) var LoginPage = Vue.component("loginCom", { // url路径拼接键值对传值, 会传入$route.query字段 template: "<h1>登录页:{{$route.query.name}}-{{$route.query.age}}</h1>", created() { // 在路由跳转的组件中会生成一个$route对象,记录路由跳转信息,可用于路由传值和路由监听 console.log(this.$route) }, }) const router = new VueRouter({ routes:[ {path:'/', component: MainPage}, {path:"/login", component: LoginPage} ] }) new Vue({ el: '#myApp', router }) </script></body>