Vue 知识点分享

发布于 2023-07-17 21:25:30 字数 1217 浏览 29 评论 0

data 声明的变量 不能以 _ 或者 $ 开头,Vue 不会将这些变量转化为响应式变量,且无法在实例上访问到该变量

// core/instance/state.ts
...
else if (!isReserved(key)) {
    proxy(vm, `_data`, key)
}
...

// core/util/lang.ts
export function isReserved(str: string): boolean {
  const c = (str + '').charCodeAt(0)
  return c === 0x24 || c === 0x5f
}

Vue router params 传参数无法正确获取

params 传参只能通过 name 标识路由,不能通过 path

this.$router.push({
    name: 'RouteName',
    params: {}
})

Loading chunk * failed

由于路由懒加载,切换页面时会加载对应的 chunk。发版后文件变化,导致无法正常加载对应的 JS,用户必须刷新页面才行。

解决办法: 增加路由守卫,记录跳转路由的路径到全局变量。然后劫持 console.error 方法。 webpack 懒加载失败时会用 console.error 打印信息

let isChunkError = false
export function fixLazyLoadChunkError() {
    const origin = console.error
    console.error = (error) => {
      if (/Loading chunk [^\s]+ failed/.test(error.message)) {
        if(isChunkError) return 
        isChunkError = true
        if(window.nextRoute) {
            const nextLocation = location.href.split('#')[0]+'#'+window.nextRoute
            location.href = nextLocation
            location.reload()
        }
      } else {
        origin(error);
      }
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

无声静候

暂无简介

0 文章
0 评论
443 人气
更多

推荐作者

13886483628

文章 0 评论 0

流年已逝

文章 0 评论 0

℡寂寞咖啡

文章 0 评论 0

笑看君怀她人

文章 0 评论 0

wkeithbarry

文章 0 评论 0

素手挽清风

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文