vue项目报错,vue问题

  vue项目报错,vue问题

  在项目开发中,我们经常会遇到各种各样的错误,这些错误总是以这样或那样的方式得到解决。本文主要介绍如何处理vue项目中的错误的相关信息,有需要的朋友可以参考一下。

  

目录

  一、错误类型二。如何处理后端接口错误码的逻辑问题?附加全局设置错误处理生命周期挂钩:Vue统一错误处理总结

  

一、错误类型

  任何框架都是处理错误的必备能力。

  在Vue中,为用户定义了一套相应的错误处理规则,一些必要的流程在源代码级别进行处理。

  的主要误差来源包括:

  后端错误代码中的逻辑错误

  

二、如何处理

  

后端接口错误

  网络请求的响应是通过axios的拦截器实现的,先进行一层拦截。

  API client . interceptors . response . use(

  响应={

  返回响应;

  },

  错误={

  if(error . response . status==401){

  router . push({ name: log in });

  }否则{

  message . Error(“Error”);

  return Promise.reject(错误);

  }

  }

  );

  

代码逻辑问题

  

全局设置错误处理

  设置全局错误处理功能

  vue . config . error handler=function(err,vm,info) {

  //处理错误

  //` info 是特定于Vue的错误信息,例如错误所在的生命周期挂钩。

  //仅在2.2.0中可用

  }

  ErrorHandler指定一个处理函数,该函数在组件的呈现和观察过程中不捕捉错误。当调用这个处理程序时,它可以获得错误消息和Vue实例。

  但是,值得注意的是,这个全局API的范围在不同的Vue版本中会有所不同:

  从2.2.0开始,这个钩子也将捕获组件生命周期钩子中的错误。同样,当这个钩子未定义时,捕获的错误将通过console.error输出,以避免应用程序崩溃。

  从2.4.0开始,这个钩子也将捕获Vue自定义事件处理程序中的错误。

  从2.6.0开始,这个钩子也将捕获v-onDOM监听器内部抛出的错误。此外,如果任何被覆盖的挂钩或处理程序返回一个承诺链(例如异步函数),来自其承诺链的错误也将被处理。

  

生命周期钩子

  ErrorCaptured是2.5.0中的一个新的生命钩子函数,当一个来自后代组件的错误被捕获时,这个函数被调用。

  基本类型

  (err: Error,vm: Component,info: string)=?布尔型

  这个钩子接收三个参数:错误对象、发生错误的组件实例和包含错误来源信息的字符串。这个钩子可以返回false来防止错误向上传播。

  参考官方网站,错误传播规则如下:

  默认情况下,如果定义了全局config.errorHandler,仍将发送所有错误,因此这些错误仍将报告给单个analysis service。如果在一个组件的继承或父从属链接中有多个errorCaptured钩子,它们将被相同的错误一个接一个地唤醒。如果这个errorCaptured挂钩本身抛出一个错误,新的错误和最初捕获的错误将被发送到全局配置。本质上是说“这个错误已经被修复,应该忽略”。它将阻止任何其他由该错误引起的错误捕获挂钩和全局config.errorHandler。这里有一个例子。

  定义父组件类别

  Vue.component(cat ,{

  模板:` 1

  差异

  h1Cat: /h1

  插槽/插槽

  /div `,

  道具:{

  名称:{

  必填:真,

  类型:字符串

  }

  },

  捕获的错误(错误,虚拟机,信息){

  console . log(` cat EC:$ { err . tostring()} \ n info:$ { info } `);

  返回false

  }

  });

  定义一个子组件kitten,这里没有定义dontexist(),有错误。

  Vue.component(kitten ,{

  模板: div h1 kitten:{ { dontexist()} }/h1/div ,

  道具:{

  名称:{

  必填:真,

  类型:字符串

  }

  }

  });

  页面中使用的组件

  div id= app v-斗篷

  猫名=我的猫

  小猫/小猫

  /猫

  /div

  在父组件的errorCaptured中,可以捕获信息。

  cat EC: TypeError: dontexist不是函数

  信息:渲染

  

附:Vue统一错误处理

  使用Vue的全局错误处理程序

  vue . config . error handler=function(err){

  console.log(global ,err);

  message . Error(“Error”);

  };

  //.这里省略了其他配置。

  新Vue({

  路由器,

  店,

  render: h=h(App)

  }).$ mount( # app );

  

总结一下

  在需要捕获异常的地方调用HandleError。首先获取报告错误的组件,然后递归搜索当前组件的父组件,依次调用errorCaptured方法。当所有的errorCaptured方法或errorCaptured方法报错时,调用GlobalHandlerError方法GlobalHandlerError调用全局errorHandler方法,然后通过logError判断环境输出错误信息。invokeWithErrorHandling更好地处理异步错误信息,选择不同的错误抛出方法。在非生产环境中,调用warn方法来处理错误。本文介绍了如何手把手地处理vue项目中的错误。有关vue项目中错误处理的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: