理解vue2.x版本中productionTip=false设置无效的原因

这篇具有很好参考价值的文章主要介绍了理解vue2.x版本中productionTip=false设置无效的原因。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先,我们看到vue官网中关于productionTip的API使用:理解vue2.x版本中productionTip=false设置无效的原因
但是,我在本地中使用却无效,代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>初识Vue</title>
	<!-- 引入Vue -->
	<script src="../js/vue.js"></script>
</head>

<body>
	<script>
		Vue.config.productionTip = false; // 阻止 vue 在启动时生成生产提示
	</script>
</body>

</html>

于是,我在网上找了半天解决办法,都说是把vue.js的源码中的productionTip改成false,但是我想知道原因啊,并不是解决办法。
于是,我又去了vue的github中找解决办法,看到别人有提这个问题的。
理解vue2.x版本中productionTip=false设置无效的原因

于是我在底下的评论里看到这条:
理解vue2.x版本中productionTip=false设置无效的原因
大致翻译过来的解释是,在最新版本的Chrome中,在script中使用settimeout,将在允许第一个js完成后立即回调。
我们看一下源码的这部分:
理解vue2.x版本中productionTip=false设置无效的原因

确实是用了一个setTimeout包裹,那么,我们怎么知道这个setTimeout中的内容我在body中script设置的productionTip=false,谁先执行呢?
我们来测试一下:

  • 我们先在body中的script中打印222
    理解vue2.x版本中productionTip=false设置无效的原因
  • 然后我们在vue源码中打印config.productionTip
    理解vue2.x版本中productionTip=false设置无效的原因
    然后,我们去浏览器的控制台看结果,发现刷新了几下浏览器,有两种结果:
    • 结果1——异常
      理解vue2.x版本中productionTip=false设置无效的原因
    • 结果2——正常
      理解vue2.x版本中productionTip=false设置无效的原因

原因解释:

  1. 异常返回——先返回true,然后是注释,最后是false,此时,vue.js加载完后执行的222,不会再进行判断,productionTip设置无效
  2. 正常返回——先返回222,后返回false,setTimeout后执行,此时productionTip为false,注释方法后222执行,productionTip设置有效

哦!!到这里我就明白了,原来就是这个setTimeout和body中的script两个比较谁先,由于setTimeout异步,所以返回时间不确定谁快。文章来源地址https://www.toymoban.com/news/detail-407659.html

解决方法:

  1. 直接源码修改productionTip为false
  2. 把源码中的setTimeout的时间改为10ms,这样提示内容会在你设置productionTip为false后生效,如下图:理解vue2.x版本中productionTip=false设置无效的原因

到了这里,关于理解vue2.x版本中productionTip=false设置无效的原因的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2面试题:对vue生命周期的理解

    生命周期(life cycle)的概念应用很广泛,在政治、经济、环境、技术、社会等诸多领域都会经常出现,可通俗理解为“从摇篮到坟墓”的整个过程,在vue中从实例的创建到销毁过程就是生命周期,即从创建、初始化数据、编译模板、挂载Dom–渲染、更新–渲染、卸载等一系列

    2024年01月25日
    浏览(53)
  • Vue2版本如何使用ip访问?

    前段时间研究了一下node,npm,express环境,vue-cli脚手架以及vue的版本,以及他们之间的关系,具体详见 vue环境部署,问题是vue2版本使用的npm run dev如果在服务器中的话,根本不能使用ip地址或者域名去访问,而vue3版本虽然自带npm run serve,但是我们只想部署2的版本的vue又该如何配置呢? 在

    2024年02月05日
    浏览(41)
  • SourceTree 这是一个无效源路径。报错:git -c diff.mnemonicprefix=false -c core

    报错内容 : 使用SourceTree更换仓库地址和密码,提示这是一个无效的源路径 报错详细信息: 报错原因 SourceTree生成了一套userhosts 、passwd信息。每次都会直接调用。调用错误就会报错。 解决方案 Win10 C:UsersxxxxAppDataLocalAtlassianSourceTree 把这个文件下的password删掉。SourceTree会

    2024年02月03日
    浏览(50)
  • Android file.delete() 返回false的原因

    在Android开发中,要删除文件,您需要获取以下权限之一或多个,取决于您要删除的文件的位置: 内部存储删除权限(适用于应用私有目录内的文件): android.permission.WRITE_INTERNAL_STORAGE :用于在应用的内部存储目录中删除文件。 外部存储删除权限(适用于公共存储空间或外部

    2024年02月07日
    浏览(96)
  • 怎们判断 Vue项目是 vue2 还是 vue3 版本

    判断一个 Vue 项目是基于 Vue 2 还是 Vue 3 版本可以通过一些明显的特征来进行区分。以下是一些常见的方法: 查看项目依赖 :打开项目的 package.json 文件,查看 vue 的版本号。 如果版本号是 2.x.x ,则项目是基于 Vue 2。例如: \\\"vue\\\": \\\"2.6.14\\\" 如果版本号是 3.x.x ,则项目是基于 Vu

    2024年02月14日
    浏览(41)
  • node.js版本过高,导致vue2 版本的项目无法正常启动

    node.js版本过高,导致vue2 版本的项目无法正常启动 node的版本是18 ,vue版本是2 ;npm install 失败 1、未采取提示的方式,而是利用了npx命令; 使用npx指定npm的版本 npx -p npm@6 npm i --legacy-peer-deps 注意:如果这不能立即起作用,也许可以先删除node_modules和package-lock.json。它们将被重

    2024年02月08日
    浏览(63)
  • 如何升级Vue的版本 vue2.9.6升级到vue3.0

    背景:电脑使用多年,一直使用vue 2.x版本,项目开发过程中由于一个模块涉及的集成模块过多,导致需要进行定义的变量越来越多,代码出现冗余,因此在同事的推动下,鉴于vue 3.x的优化,故对自己本来使用的vue 2.9.6升级到vue 3.0版本。那么如何升级呢,请查阅如下步骤:

    2023年04月08日
    浏览(44)
  • Vue2和Vue3的主要区别详解及版本的过渡历史变迁

    vue2简史: 作为前端的主流框架之一的 vue2 从 发布 到 停止维护 经历了 23 个主要版本更新,Vue 2.7 是当前、同时也是 最后一个 Vue 2.x 的次级版本更新。提供 18 个月的长期技术支持 (LTS:long-term support)。在此期间,Vue 2 将会 提供必要 的 bug 修复和安全修复,但 不再提供新特性

    2024年03月23日
    浏览(65)
  • vue2.6及以下版本导入 TDesign UI组件库

    TDesign 官方文档:https://tdesign.tencent.com/vue/components/button 我们先打开一个普通的vue项目 然后 如果你是 vue 2.6 或者 低于 2.6 在终端执行 如果你是 2.7 或者更高 执行 这里 我们 以 2.6为例 因为大部分人 用vue2 都是选择 2.6 先引入一下依赖 然后 我们打开程序入口文件main.js 在里面加上

    2024年02月10日
    浏览(46)
  • ❤ 全面解析若依框架vue2版本(springboot-vue前后分离--前端部分)

    一般在vue项目public文件夹下命名为“favicon.ico” ❤ 处理步骤 第1步:将图标重命名为“favicon.ico”,并放在项目根目录 下。 第2步:然后在index.html中引入,title中修改页面标题。 第3步:修改build文件夹下 webpack .dev.conf.js和webpack.prod.conf.js文件中的内容。 第五步:重新已经成功

    2024年02月12日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包