Vue Router hash模式和history模式的区别

  • hash模式url里面永远带着#号,我们在开发当中默认就是hash模式。 那么什么时候需要用到history模式呢? 肯定是用户觉得#号太low还难看所以就需要使用history模式,因为history模式是不存在#号的,也是正常url推广宣传。当然功能方面也有区别。比如我们在开发app的时候会分享页面,那么分享出去的页面是vue或者react做的,咋们就需要使用history模式。因为app url是不允许带有#号的,所以必须要清除掉。 但是使用history模式还有一个问题就是,在访问二级路由的时候,刷新当前路由,会导致404,这个时候 就需要后端人员配置 nginx的url重定向了。

总结:
服务端是如何做路由分发的,当用户访问一个url时,对应的服务器会接收这个请求,然后解析url中的路径,从而执行对应的处理逻辑。这样就完成了一次路由分发。

而前端是不涉及服务器的,所以前端利用hash或者history来实现,一般就是不同内容的展示和切换而已。

VueX的Mutation和Action的区别

  • 个人解答就是 mutation做同步操作,Action一般用做异步操作
  • Action 作为业务逻辑的封装更合适,提供了更大的自由度

进程与线程的区别

进程是操作系统进行资源分配和调度的基本单位,线程是操作系统进行运算的最小单位。一个程序至少有一个进程,一个进行至少有一个线程。线程需要由进行来启动和管理。
通常程序需要执行多个任务,比如浏览器需要一边渲染页面一边请求后端数据同时还有响应用户事件,而单线程的进程在同一时间内只能执行一个任务,无法满足多个任务并行执行的需求,要解决这个问题。可以通过3中方式来实现。

  • 多进程
  • 多线程(同一进程)
  • 多进程和多线程

而多线程没有分配独立的资源,线程之间的数据都是共享的。但是数据共享也带来了很多问题:首先是稳定性,进程中任意线程崩溃都会导致整个进程的崩溃,也就是说会“牵连”到进程中的其他线程。安全隐患就更容易理解了,如果有恶意线程启动,可以随意访问进程中的任意资源。

总结:
总而言之,多线程更轻量,多进程更完全更稳定。

Vue 的父组件和子组件生命周期钩子执行顺序是什么

加载渲染过程
- 父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted
子组件更新过程
- 父beforeUpdate->子beforeUpdate->子updated->父updated
父组件更新过程
- 父beforeUpdate->父updated
销毁过程
- 父beforeDestroy->子beforeDestroy->子destroyed->父destroyed

技术没有终点,每次越过一个山头就看见更高的山,回头看看自己越过的以为的山,就是个小土坡。

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐