vue局部跳转_vue-router 实现跳转的方式

vue-router 实现跳转的方式

1、说一下vue中所有带$的方法

{{msg}}

a

let vm = new Vue({

el:'#example',

data:{msg:'hello',arr:[1,2,3]},

mounted(){

this.$nextTick(()=>{

console.log(vm);

})

console.log(this.$refs.myp)//无论有多少个只能拿到一个

console.log(this.$refs.mydiv)//可以拿到一个数组

this.arr=[1,2,3,4]

console.log(this.$refs.wrap)

debugger //这里debugger的话只能看到warp打印出来的是有3个,因为dom渲染是异步的。所以如果数据变化后想获取真实的数据的话需要等页面渲染

完毕后在获取,就用$nextTick

} })

vm.$watch('msg', function (newValue, oldValue) { // 这个回调将在 `vm.msg` 改变后调用 })

//this.$data: vm上的数据

//this.$el:当前el元素

//this.$nextTick :异步方法,等待渲染dom完成后来获取vm

//this.$watch:监控

//this.$set:后加的属性实现响应式变化

//this.$refs:被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例

2、vue-router 除了router-link 怎么实现跳转?

1) router-link 实现方式

//1. 不带参数

//name,path都行, 建议用name

//2.带参数

// params传参数 (类似post)

// 路由配置 path: “/home/:id” 或者 path: “/home:id”

// 不配置path ,第一次可请求,刷新页面id会消失

// 配置path,刷新页面id会保留

// html 取参 $route.params.id

// script 取参 this.$route.params.id

2)  this.$router.push() (函数里面调用)

1. 不带参数

this.$router.push('/home')

this.$router.push({name:'home'})

this.$router.push({path:'/home'})

2. query传参

this.$router.push({name:'home',query: {id:'1'}})

this.$router.push({path:'/home',query: {id:'1'}})

// html 取参 $route.query.id

// script 取参 this.$route.query.id

3. params传参

this.$router.push({name:'home',params: {id:'1'}}) // 只能用 name

// 路由配置 path: "/home/:id" 或者 path: "/home:id" ,

// 不配置path ,第一次可请求,刷新页面id会消失

// 配置path,刷新页面id会保留

// html 取参 $route.params.id

// script 取参 this.$route.params.id

4. query和params区别

query类似 get, 跳转之后页面 url后面会拼接参数,类似?id=1, 非重要性的可以这样传, 密码之类还是用params刷新页面id还在

params类似 post, 跳转之后页面 url后面不会拼接参数 , 但是刷新页面id 会消失

3) this.$router.replace() (用法同上,push)

在vue.js中想要跳转到不同的 URL,需要使用 router.push 方法。这个方法会向 history 栈添加一个新的记录,当用户点击浏览器后退按钮时,则回到之前的 URL。

设置replace 属性(默认值: false)的话,当点击时,会调用router.replace()而不是router.push(),于是导航后不会留下history 记录。即使点击返回按钮也不会回到这个页面。

4)   this.$router.go(n) ()

this.$router.go(n)

向前或者向后跳转n个页面,n可为正整数或负整数

3、介绍单页应用和多页应用?

单页面应用(SinglePage Web Application,SPA)

只有一张Web页面的应用,是一种从Web服务器加载的富客户端,单页面跳转仅刷新局部资源 ,公共资源(js、css等)仅需加载一次,常用于PC端官网、购物等网站

如图:

多页面应用(MultiPage Application,MPA)

多页面跳转刷新所有资源,每个公共资源(js、css等)需选择性重新加载,常用于 app 或 客户端等

如图:

具体对比分析:

单页面应用(SinglePage Web Application,SPA)

多页面应用(MultiPage Application,MPA)

组成

一个外壳页面和多个页面片段组成

多个完整页面构成

资源共用(css,js)

共用,只需在外壳部分加载

不共用,每个页面都需要加载

刷新方式

页面局部刷新或更改

整页刷新

url 模式

a.com/#/pageone

a.com/#/pagetwo

a.com/pageone.html

a.com/pagetwo.html

用户体验

页面片段间的切换快,用户体验良好

页面切换加载缓慢,流畅度不够,用户体验比较差

转场动画

容易实现

无法实现

数据传递

容易

依赖 url传参、或者cookie 、localStorage等

搜索引擎优化(SEO)

需要单独方案、实现较为困难、不利于SEO检索 可利用服务器端渲染(SSR)优化

实现方法简易

试用范围

高要求的体验度、追求界面流畅的应用

适用于追求高度支持搜索引擎的应用

开发成本

较高,常需借助专业的框架

较低 ,但页面重复代码多

维护成本

相对容易

相对复杂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值