vue-router组件里面点击一个按钮跳转到一个新的组件该怎么实现直接修改地址栏中的路由地址即可:<br><!-- 引入文件 --><br><script src=js/vue-router.js><br></head><br><body><br><div id=container><br><p>{{msg}}</p><br><!--通过router-view指定盛放组件的容器 --><br><router-view></router-view><br></div><br><br>var testLogin = Vue.component(login,{<br>template:`<br><div><br><h1>这是我的登录页面</h1><br></div><br>`<br>})<br>var testRegister = Vue.component(register,{<br>template:`<br><div><br><h1>这是我的注册页面</h1><br></div><br>`<br>})<br>//配置路由词典<br>//对象数组<br>const myRoutes =[<br>//当路由地址:地址栏中的那个路径是myLogin访问组件<br>//组件是作为标签来用的所以不能直接在component后面使用<br>//要用返回值<br>//path:指定地址栏为空:默认为Login页面<br>{path:,component:testLogin},<br>{path:/myLogin,component:testLogin},<br>{path:/myRegister,component:testRegister}<br>]<br><br>const myRouter = new VueRouter({<br>//myRoutes可以直接用上面的数组替换<br>routes:myRoutes<br>})<br>new Vue({<br>router:myRouter,<br>//或者:<br>/*<br>router:new VueRouter({<br>routes:[<br>{path:/myLogin,component:testLogin},<br>{path:/myRegister,component:testRegister}<br>]<br>})<br>*/<br>el:#container,<br>data:{<br>msg:Hello VueJs<br>}<br>})<br><br></body><br></html><br><br><br>一、通过router-link实现跳转<br><br><router-link to=/myRegister>注册</router-link><br><!doctype html><br><html><br><head><br><meta charset=UTF-8><br><title></title><br><script src=js/vue.js><br><!-- 引入文件 --><br><script src=js/vue-router.js><br></head><br><body><br><div id=container><br><p>{{msg}}</p><br><!--通过router-view指定盛放组件的容器 --><br><router-view></router-view><br><br></div><br><br>var testLogin = Vue.component(login,{<br>template:`<br><div><br><h1>这是我的登录页面</h1><br><router-link to=/myRegister>注册</router-link><br></div><br>`<br>/*to后面是路由地址*/<br>})<br>var testRegister = Vue.component(register,{<br>template:`<br><div><br><h1>这是我的注册页面</h1><br></div><br>`<br>})<br>//配置路由词典<br>const myRoutes =[<br>{path:,component:testLogin},<br>{path:/myLogin,component:testLogin},<br>{path:/myRegister,component:testRegister}<br>]<br><br>const myRouter = new VueRouter({<br>routes:myRoutes<br>})<br>new Vue({<br>router:myRouter,<br>el:#container,<br>data:{<br>msg:Hello VueJs<br>}<br>})<br><br></body><br></html><br>二、通过js的编程的方式<br>jumpToLogin: function () {<br>this.$router.push(/myLogin)<br>}<br><!doctype html><br><html><br><head><br><meta charset=UTF-8><br><title></title><br><script src=js/vue.js><br><!-- 引入文件 --><br><script src=js/vue-router.js><br></head><br><body><br><div id=container><br><p>{{msg}}</p><br><!--通过router-view指定盛放组件的容器 --><br><router-view></router-view><br><br></div><br><br>var testLogin = Vue.component(login,{<br>template:`<br><div><br><h1>这是我的登录页面</h1><br><router-link to=/myRegister>注册</router-link><br></div><br>`<br>/*to后面是路由地址*/<br>})<br>var testRegister = Vue.component(register,{<br>methods:{<br>jumpToLogin:function(){<br>this.$router.push(/myLogin)<br>}<br>},<br>template:`<br><div><br><h1>这是我的注册页面</h1><br><button @click=jumpToLogin>注册完成,去登录</button><br></div><br>`<br>})<br>//配置路由词典<br>const myRoutes =[<br>{path:,component:testLogin},<br>{path:/myLogin,component:testLogin},<br>{path:/myRegister,component:testRegister}<br>]<br><br>const myRouter = new VueRouter({<br>routes:myRoutes<br>})<br>new Vue({<br>router:myRouter,<br>el:#container,<br>data:{<br>msg:Hello VueJs<br>}<br>})<br><br></body><br></html></p><h2>vue-router应用于组件内时的矛盾怎么解决</h2><p>我使用的是vue-cli构建的项目,它结合了webpack可以很方便地使用.vue的单文件组件,非常方便,现在想使用vue-router来做前端路由及组件切换,目前是在html中引用了入口js,入口js的用途是引用根组件App.vue,我希望在App.vue里面使用vue-router,于是在App.vue文件的template标签内加入了<router-view></router-view>,template标签内容如下:<br> <template><br> <div id=app><br> <div class=main><br> <router-view></router-view><br> </div><br> </div><br> </template><br> 遇到的问题是:<br> 1、如果在App.vue组件ready之前使用Vue.use(VueRouter),在ready后使用router.start(App_body, #app),那么会报错“[vue-router] <router-view> can only be used inside a router-enabled app.”我猜测是因为App.vue组件并未编译完成,自然在template里面的<router-view></router-view>就找不到了,所以在ready之前注册vue-router报这个错。<br> 2、如果在组件ready后使用Vue.use(VueRouter)和router.start(App_body, #app),那么会报错“[Vue warn]: Unknown custom element: <router-view> – did you register the component correctlyhttp://www.toprealgroup.com/web/? For recursive components, make sure to provide the name option.”我猜测是因为App.vue组件ready之前,发现template中有<router-view></router-view>组件,而这个组件还没有被注册</p><h2>vue-router2.0 router-link怎么与组件结合使用</h2><p>模版中指定路径<router-link to=/foo>Go to Foo</router-link><br>定义组件模版const Foo = { template: <div>foo</div> }<br>定义路由,加载模版const routes = [<br>{ path: /foo, component: Foo },<br>{ path: /bar, component: Bar }<br>]<br>挂载路由后就可以了。看 Vue-router2 文档上写的很清晰。</p><h2>vue-router 怎么侦听路由变化</h2><p>vue-router 怎么侦听路由变化:<br>新闻板块有推荐、精华、最新等几个Tab,设想通过切换Tab,改变路由参数(get/news/:tab)去获取对应数据,然后渲染到页面(用的是同一套组件),问题来了:当切换Tab时,数据并没有更新,有这么一句话:提醒一下,当使用路由参数时,例如从/user/foo导航到user/bar,原来的组件实例会被复用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。<br>意思很明显了:虽然路由参数发生了变化,但组件还是那个组件,Vue生命周期也还没结束,此时并不会刷新数据。(个人认为,开发spa页面,一切都是以路由为起点的,路由变化,页面跟着变化,复用组件竟然会影响到路由,很难受!!)<br>不过,官网也提出了相应的解决方案:复用组件时,想对路由参数的变化作出响应的话,你可以简单地 watch(监测变化)<br><br>一旦有故障才走电信,那就是说电信是完全备份线路,你更改路由的metric就可以选择一个默认优先,另一个备份可以啊.若你能配置核心。</p><h2>vue-router.js 能单独使用么</h2><p>1. router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。<br>2. vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。<br>3. 传统的页面应用,是用一些超链接来实现页面切换和跳转的。<br>4. 在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。</p>