引用自:http://www.rzrgm.cn/javaxubo/p/17397457.html
首先,我們看到vue官網(wǎng)中關于productionTip的API使用:
但是,我在本地中使用卻無效,代碼如下:
<!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 在啟動時生成生產(chǎn)提示</script>
</body></html>
于是,我在網(wǎng)上找了半天解決辦法,都說是把vue.js的源碼中的productionTip改成false,但是我想知道原因啊,并不是解決辦法。
于是,我又去了vue的github中找解決辦法,看到別人有提這個問題的。
于是我在底下的評論里看到這條:
大致翻譯過來的解釋是,在最新版本的Chrome中,在script中使用settimeout,將在允許第一個js完成后立即回調(diào)。
我們看一下源碼的這部分:
確實是用了一個setTimeout包裹,那么,我們怎么知道這個setTimeout中的內(nèi)容和我在body中script設置的productionTip=false,誰先執(zhí)行呢?
我們來測試一下:
-
然后我們在vue源碼中打印config.productionTip
然后,我們?nèi)g覽器的控制臺看結果,發(fā)現(xiàn)刷新了幾下瀏覽器,有兩種結果:
原因解釋:
- 異常返回——先返回true,然后是注釋,最后是false,此時,vue.js加載完后執(zhí)行的222,不會再進行判斷,productionTip設置無效
- 正常返回——先返回222,后返回false,setTimeout后執(zhí)行,此時productionTip為false,注釋方法后222執(zhí)行,productionTip設置有效
哦!!到這里我就明白了,原來就是這個setTimeout和body中的script兩個比較誰先,由于setTimeout異步,所以返回時間不確定誰快。




浙公網(wǎng)安備 33010602011771號