vue路由

vue 路由跳转几种方法

a 夏天 提交于 2019-11-30 07:14:22
vue 路由跳转几种方法 1.router-link 【实现跳转最简单的方法】 <router-link to='需要跳转到的页面的路径> 类似于a 的标签 div和css样式略 < li > < router-link to = " keyframes " > 点击验证动画效果 </ router-link > </ li > 2、this.$router.push({ path:’/user’}) 描述:跳转到不同的url,但这个方法回向history栈添加一个记录,点击后退会返回到上一个页面。 < template > ... . . < li @click = "change" > 验证路由传参 < / li > < / template > < script > export default { data ( ) { return { id : 43 , //需要传递的参数 } } , methods : { change ( ) { this . $router . push ( { //核心语句 path : '/select' , //跳转的路径 query : { //路由传参时push和query搭配使用 ,作用时传递参数 id : this . id , } } ) } } } < / script > < template > ... . . < div

vue 路由跳转方式及路由传参

萝らか妹 提交于 2019-11-30 07:13:52
一、vue 路由跳转方式 1、声明式跳转(标签跳转): router-link api: // 1.to { string | Location } 表示目标路由的链接。当被点击后,内部会立刻把 to 的值传到 router.push(),所以这个值可以是一个字符串或者是描述目标位置的对象。 <!-- 字符串 --> <router-link to="orderDetail">订单详情</router-link> <!-- 渲染结果 --> <a href="orderDetail">订单详情</a> <!-- 使用 v-bind 的 JS 表达式 --> <router-link v-bind:to="'orderDetail'">订单详情</router-link> <!-- 不写 v-bind 也可以,就像绑定别的属性一样 --> <router-link :to="'orderDetail'">订单详情</router-link> <!-- 同上 --> <router-link :to="{ path: '/orderDetail' }">订单详情</router-link> <!-- 命名的路由 --> <router-link :to="{ name: 'orderDetail', params: { id: 1 }}">订单详情</router-link> <!--

vue项目实践@树洞

瘦欲@ 提交于 2019-11-30 03:42:55
  业务开发      业务逻辑这块儿并就没有什么特别重要的东西要说,无非就是样式、兼容,再加上vue的语法。这些都是基本功,移动端没有IE,故而不会有太多让人窒息的问题。如果说有什么难点,那就是vuex,主要是它的几个核心比较难理解,理解了也不难。      目前只是一些基础的业务逻辑,故只是提一下我在这个项目中遇到的一些问题。      ## Tabbar多米诺骨牌 ##      使用Vant的Tabbar完成底部菜单,五个菜单项,中间项是一个创建消息的功能。类似于手机QQ空间底部菜单栏,这个功能需要功能需要登录且是一个弹窗。那么问题来了:第一,不能使用<router-link>,须根据是否已登录执行相应的逻辑;第二,页面跳转到相应的链接,这个地址再回来对应的索引必须正确;第三,弹窗关闭,对应tabbar的索引也应该进行正确的指示;第四,这个创建图标不能有指示效果,也就是说它只能有一种状态;第五,不是所有页面都有Tabbar,它相对于底部的间距需要处理。      先解决第五个问题,提取组件,所有样式、逻辑集中处理,在需要的地方引用即可。这很容易想到,那么底部菜单的间距怎么做?这也容易想得到,组件渲染完成,给body注入一个菜单高度的底部间距即可。别忘了,在组件结束要移除这个样式。那么,什么时候注入,在哪个生命周期函数内注入?我在百度这个问题的时候

vue 路由懒加载

こ雲淡風輕ζ 提交于 2019-11-30 02:16:57
当打包构建应用时,JavaScript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。 有如下三种方法: vue异步组件 es提案的import() webpack的require,ensure() 1.vue异步组件 将异步组件和 webpack 的 code-splitting 功能一起配合使用 vue-router配置路由 , 使用vue的异步组件技术 , 可以实现按需加载 . 但是,这种情况下一个组件生成一个js文件 1 /* vue异步组件技术 */ 2 { 3 path: '/home', 4 name: 'home', 5 component: resolve => require(['@/components/home'],resolve) 6 },{ 7 path: '/index', 8 name: 'Index', 9 component: resolve => require(['@/components/index'],resolve) 10 },{ 11 path: '/about', 12 name: 'about', 13 component: resolve => require(['@/components/about'],resolve) 14 } 2

Vue之 路由配置安装 以及跳转

喜夏-厌秋 提交于 2019-11-30 00:48:03
https://router.vuejs.org/zh/ vue路由配置: 1.安装 npm install vue-router --save / cnpm install vue-router --save 2、引入并 Vue.use(VueRouter) (main.js) import VueRouter from 'vue-router'; Vue.use(VueRouter); 3、配置路由 1、创建组件 引入组件 import Home from './components/Home.vue'; import News from './components/News.vue'; 2、定义路由 (建议复制s) const routes = [ { path: '/home', component: Home }, { path: '/news', component: News }, { path: '*', redirect: '/home' } /*默认跳转路由*/ ] 3、实例化VueRouter const router = new VueRouter({ routes // (缩写)相当于 routes: routes }) 4、挂载 new Vue({ el: '#app', router, render: h => h(App) }) 5

VUE—路由(五)导航守卫

时光毁灭记忆、已成空白 提交于 2019-11-29 14:38:37
一、路由独享守卫 假如要守护home路径,就在router.js中home路径中设置 二、全局守卫(守卫所有路径) 加在路由整体上—>router中,router在mian.js中使用,所以先设置main.js 2、全局守卫:beforeResolve (当路由内的东西都被解析完毕时执行(一层一层都加载完的时候)) 形式与上面的router.beforeEach一样 3、router.afterEach( ) =>{ } 什么都ok时执行,没有实质意义,里面也没有参数 路由的解析流程: https://router.vuejs.org/ 总结: 来源: https://www.cnblogs.com/tianya-guoke/p/11519720.html

Vue打包后刷新页面显示404或者not get ***错误

扶醉桌前 提交于 2019-11-29 11:57:26
引 首先要知道的一点就是,Vue 打包形成的是单页面应用,很明显,就只有一个 index.html 和好几个 js 文件 然后再开发的过程中, hsah 模式下的路由会多个 # ,所以会显得很难看,大家都会使用 history 模式,这样就导致了这个问题。 hash 模式下的路由变化不会发生对后端的请求,但是 history 模式下,会出现路由变化导致请求的发生,而单页面应用只有index文件,默认一般都是在 / 根目录下,所以当在其他页面的时候,发生请求,会出现后端没有配置而返回的 404. 方法 网上有很多用 nginx 的方法,但是在本地实验的时候很麻烦,所以在使用nodejs作为后端的时候可以使用这个库 connect-history-api-fallback //俩行代码即可 var history = require ( 'connect-history-api-fallback' ) app . use ( '/' , history ( ) ) ; 问题解决!!!! 来源: https://blog.csdn.net/qq_32867271/article/details/100804824

Vue路由守卫之组件内路由守卫

牧云@^-^@ 提交于 2019-11-29 11:20:31
​ beforeRouteEnter,进入路由前。需要注意这里不能使用this,因为我们使用的是进入路由之前,那会组件还没创建,得不到this这个属性,所有我们只能使用过vm异步语句来让节点上树; <script> export default { data(){ return{ num : 10 } }, beforeRouteEnter:(to,from,next)=>{ next(vm=>{ alert(vm.num) }) }, ​ } </script>    运行后可以看到,在使用beforeRouteEnter,使用的vm异步语句得到 beforeRouteLeave:离开路由之前可以被调用,可以访问里面的this属性! <script> export default { data(){ return{ num : 10 } }, beforeRouteLeave (to, from, next) { if(confirm('确定离开吗?') === true){ next() }else{ next('aa') } } } </script>    运行后可以看到,使用beforeRouteLeave(离开路由之前),系统会询问是否要离开,点击取消系统不会跳转,点击确定之后系统才会跳转离开。所以我们可以在离开路由之前做一些事情; 为大家奉上导航守卫完整的解析流程

vue-router中$route 和 $router

对着背影说爱祢 提交于 2019-11-29 10:10:39
1.1 $route 表示(当前路由信息对象) 表示当前激活的路由的状态信息,包含了当前 URL 解析得到的信息,还有 URL 匹配到的 route records(路由记录)。 路由信息对象:即$router会被注入每个组件中,可以利用它进行一些信息的获取。 1 1.$route.path** 2 字符串,对应当前路由的路径,总是解析为绝对路径,如 "/foo/bar"。 3 2.$route.params** 4 一个 key/value 对象,包含了 动态片段 和 全匹配片段, 5 如果没有路由参数,就是一个空对象。 6 3.$route.query** 7 一个 key/value 对象,表示 URL 查询参数。 8 例如,对于路径 /foo?user=1,则有 $route.query.user == 1, 9 如果没有查询参数,则是个空对象。 10 4.$route.hash** 11 当前路由的 hash 值 (不带 #) ,如果没有 hash 值,则为空字符串。锚点 12 5.$route.fullPath** 13 完成解析后的 URL,包含查询参数和 hash 的完整路径。 14 6.$route.matched** 15 数组,包含当前匹配的路径中所包含的所有片段所对应的配置参数对象。 16 7.$route.name 当前路径名字** 17 8.$route

vue路由跳转的三种方式

a 夏天 提交于 2019-11-29 10:00:52
1、router-link 【实现跳转最简单的方法】 <router-link to='需要跳转到的页面的路径> 浏览器在解析时,将它解析成一个类似于<a> 的标签。 1 2 3 4 #div和css样式略 <li > <router-link to= "keyframes" >点击验证动画效果 </router-link> </li> 别忘记给需要跳转的路径在需要提前在router/index.js下引入哦。   2、this.$router.push({ path:’/user’}) 常用于路由传参,用法同第三种 区别: 1.query引入方式 params只能用name来引入路由 而query 要用path引入 2.query传递方式 类似于我们ajax中get传参,在浏览器地址栏中显示参数 params则类似于post,在浏览器地址栏中不显示参数 在helloworld.vue文件中 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <template> ..... <li @click= "change" >验证路由传参</li> </template> <script> export default { data () { return { id:43, //需要传递的参数 } },