关于javascript:我遇到的面试题记录

最近在找工作,记录一下遇到的面试题和我整顿后的答案。

  • vue

1、vue-router晓得吗?有哪几种不同的模式?
https://www.jianshu.com/p/4c5…
https://www.jianshu.com/p/557…
https://blog.csdn.net/weixin_…

vue-router
vue-router 就是vue深度集成的单页面利用的门路管理器,在vue的单页面利用中,由它建设起url和页面的映射关系。

hash/history
vue-router 在实现单页面利用前端路由时,提供了两种形式:hash和history,依据mode参数来决定采纳哪一种。
hash模式

  • url里会带#号,#号是url的的锚点,代表页面的一个地位,vue-router组件跳转的时候只扭转#号后的局部,所以不会向后端发送申请和从新加载页面,只会对dom的指定地位进行渲染。
  • 每次扭转#号后局部,浏览器会在历史列表中新增一条记录,所以按后退会返回上一个地位。
  • hash模式的实质原理是wendow的onhashchange工夫,利用它来监控url hash的扭转来更新组件渲染。

history模式

  • url里不带#号。
  • 原理是利用了h5中的pushState或replaceState api,实现了只在浏览器历史中新增记录,扭转location地址栏后不从新向服务器申请的性能。
  • 但这个模式下刷新页面时会发申请,服务器如果须要非凡配置来防止返回404。

2、说一下vue外面的组件传参。
https://www.jianshu.com/p/85b…
① 父组件传递给子组件:

  • 父组件通过组件标签内冒号参数名(:paramsName )传递,子组件通过props参数接住。
  • 子组件内调用this.$parent.paramsName 间接拜访父组件参数/办法

② 子组件传递给父组件

  • 通过事件传递 this.$emit()
  • 父组件通过this.$refs间接调用子组件参数
  • 父组件通过this.$children[i]间接调用子组件参数。

③ 兄弟组件传递

  • 通过事件总线传递(vue2 eventbus\vue3 mitt)
  • 通过vuex传递

3、说下vue组件的生命周期。
https://www.cnblogs.com/qidh/…
https://www.jianshu.com/p/410…

  • beforeCreate
    第一个生命周期函数,vue实例初始化时调用这个函数,这时data和methods跟dom都没有初始化。
  • created
    vue实例创立创立实现时调用这个函数,这时data和methods曾经能够用,但dom模板还没渲染。能够在这个阶段向后盾申请数据。
  • beforeMount
    挂载开始前被调用,dom模板编译实现,用户能够看到模板页面,然而看不到真正的数据。
  • mounted
    dom树残缺渲染到页面后调用,用户此时能够看到实在数据,组件创立阶段完结。这个阶段能够进行dom操作,能够初始化一些第三方ui插件。
  • beforeUpdate
    数据被更新时调用,然而未出现到页面上。
  • updated
    数据更新后虚构dom从新渲染后调用。
  • beforeDestroy
    实例被销毁前调用,组件data、methods等依然能够被失常拜访。
  • destroyed
    组件销毁实现后调用,data、methods都不可应用了。

4、说一说vue的双向绑定。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理