还没找到工作吗?这六道前端面试题你会了吗?

还没找到工作吗?这六道前端面试题你会了吗?

1.简述一下深克隆原理

深克隆就是将引用类型的值全部拷贝一份,形成一个新的引用类型,这样就不会发生引用错乱的问题,
首先判断执行对象的类型是数组、对象或是普通类型,通过for in遍历数组或者对象,
判断value的类型 ,如果是对象类型那么就递归再次执行深克隆,直到全是普通类型。

2.实现token登录认证

  用户登录账户,后端校验数据库,如果账号密码正确那么会用jwt.sign将用户信息以对称加密的方式生成一个
  字符串发送到前段,前端进行存储,在进行需要登录验证的跳转时需要携带这个数据进行验证,

后端用jwt.vertify进行解密,然后比对数据库查找该用户的存在。

3.react路由中 component children render的区别

 component引用组件可以写成类的形式也可以写成返回值的形式,当路由匹配时才能渲染。
 render 使用组件的时候需要写成返回值的形式,当路由匹配时才能渲染。
 children使用组件的时候需要写成返回值的形式,无论路由是否匹配都能渲染,不过如果路径不一致,match为null。

4.react路由 传递和获取路由信息的几种方式

传参 query + location.search
  this.props.history.push('/movie?id=2')
  接收参数用this.props.location.search
传参2 动态路由 + match.params
  path/:type
  this.props.history.push('/movie/2')
  接收参数用this.props.match.params.type
传参3 state + location.state
  this.props.history.push('/movie',{name:'haha'})
  接收参数用this.props.location.state.name

5.小程序中的路由跳转switchTab navigateTo redirectTo的区别

switchTab

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

navigateTo

保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层,类似于history.push。

redirectTo

关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。作用相当于history.repalce 在我的项目中有一个漫画的页面,里面涉及了大量的上一页下一页操作,如果用不用redirectto的话,每次都会记录,后退的时候不能一下子回退到其他页面,用户体验不太好。

6.如何解决vue tabbar刷新后高亮问题 小程序的tabbar实现原理

	vuetabbar在页面刷新后,active会清零,出现下面的高亮和页面不匹配的情况,解决方法第一种是
tabbar中加入route属性,开启路由模式,但是有一个弊端就是如果涉及到页面内有二级路由,那么将
会全部高亮失效,因此有二级路由的时候不推荐使用route。第二种是在每次进入的页面中设置meta,
然后给每一个router设置name属性与active相对应,根绝页面路由的meta属性,修改active值使其与
name属性匹配。小程序的tabbar是一个系统自带的组件,将pages的列表存储到tabbar的data之中,
根据点击的位置确认switchtab的页面,然后在页面show的时候通过gettabbar获取到tabbar,然后通过
修改内部的选中的index,使其出现高亮的效果。不过在项目中tabbar包含的页面都是一次性加载,第
二次进入页面的时候不会触发onload钩子,某些操作需要写到onshow钩子中。

猜你喜欢

转载自blog.csdn.net/qq_41383900/article/details/108233511