欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解一次Vue低版本安卓白屏問題的解決過程

 更新時間:2019年05月30日 09:31:20   作者:Gadzan  
這篇文章主要介紹了詳解一次Vue低版本安卓白屏問題的解決過程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

因為業(yè)務需要一定要使用安卓4.4的webview瀏覽頁面,測試的時候發(fā)生了白屏問題,很自然想到使用babel轉(zhuǎn)換部分ES6語法.

Babel 轉(zhuǎn)換 Promise 和 Symbol ES6語法的配置

# 兩項都需要放到生產(chǎn)依賴
npm install babel-polyfill --save
npm install es6-promise --save
// main.js
import 'babel-polyfill';
import Es6Promise from 'es6-promise';

Es6Promise.polyfill();
// babel.config.js

process.env.VUE_CLI_BABEL_TRANSPILE_MODULES = true;

module.exports = {
 presets: [
  [
   '@vue/app',
   {
    useBuiltIns: 'entry',
    polyfills: [
     'es6.promise',
     'es6.symbol',
    ],
   },
  ],
 ],
 plugins,
};
// 使用vue cli3構(gòu)建的vue項目
// vue.config.js
module.exports = {
 transpileDependencies: ['webpack-dev-server/client'],
 chainWebpack: (config) => {
 config.entry.app = ['babel-polyfill', './src/main.js'];
 }
}

但結(jié)果還是白屏,那么決定使用Babel把語法轉(zhuǎn)換成安卓4.4以上,應該沒有問題了。

// .browserslistrc
>= 1%
last 1 major version
not dead
Android >= 4.4

不同運行環(huán)境下的嚴格模式

結(jié)果還是白屏,查閱眾多網(wǎng)絡文章,同樣沒有很好的答案...

百思不得其解,無奈之下在 Android Studio 上下載了個4.4的模擬器,在內(nèi)置瀏覽器上打開頁面,使用 Chrome 遠程調(diào)試 Android 上的瀏覽器, 在 Chrome 上地址欄輸入 chrome://inspect/#devices 選擇相應模擬器設備的 inspect 就會彈出 console 調(diào)試。

沒想到發(fā)現(xiàn)報錯是 Uncaught SyntaxError: Duplicate data property in object literal not allowed in strict mode ,意思是在嚴格模式下的對象里不能重復定義相同屬性,但是這在現(xiàn)代瀏覽器(Chrome)的嚴格模式上運行是沒有問題的,其結(jié)果是后定義的屬性值會覆蓋前定義的屬性值,例如:

'use strict'
var test = {
 a: 1,
 a: 2,
}
// 結(jié)果test會定義成 => {a: 2}

但是為什么會這樣呢,在打包后的報錯js文件里將其格式化后發(fā)現(xiàn)是組件的屬性重復定義了,

<van-nav-bar
 title="標題"
 left-text="返回"
 right-text="按鈕"
 left-arrow
 @click-left="onClickLeft"
 @click-right="onClickRight"
 :left-arrow="true"
/>

我的項目里 Vant 的 left-arrow 被我重復定義了,組件會被轉(zhuǎn)義成js:

所以說不同運行環(huán)境的嚴格模式還是會有不一樣的結(jié)果,

在網(wǎng)上查了下資料總結(jié)了嚴格模式下的幾種錯誤:

1. 我上面遇到的對象屬性重復定義

2. 在函數(shù)聲明中相同的參數(shù)名

SyntaxError: Strict mode function may not have duplicate parameter names.

例如:

function fix(a,b,a) {   
   return a+b;   
 }

3. 用前導0聲明8進制直接量

SyntaxError: Octal literals are not allowed in strict mode.

var a = 012;

4. 在eval中聲明變量、重新聲明、刪除或重寫eval和arguments這兩個標示符

SyntaxError: Assignment to eval or arguments is not allowed in strict mode.

例如:

'use strict';
eval('var foo = 2');

5. 用delete刪除顯示聲明的標識符、名稱和具名函數(shù)

SyntaxError: Delete of an unqualified identifier in strict mode.

例如:

function temp() { 
 'use strict'; 
 var test = 1; 
 delete test; 
}

6. 代碼中使用擴展的保留字,例如 interface , let , yield , package , private 等

SyntaxError: Unexpected strict mode reserved word

7. 使用了 with

SyntaxError: Strict mode code may not include a with statement

8. 函數(shù)中不可訪問caller、callee以及arguments

例如:

function foo(){
 'use strict';
 foo.caller;  // TypeError
 foo.arguments; // TypeError
 arguments.callee; // TypeError
}
foo();

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 3種vue組件的書寫形式

    3種vue組件的書寫形式

    這篇文章主要為大家詳細介紹了3種vue組件的書寫形式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Vue+Element實現(xiàn)表格單元格編輯

    Vue+Element實現(xiàn)表格單元格編輯

    這篇文章主要為大家詳細介紹了Vue+Element實現(xiàn)表格單元格編輯,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue實現(xiàn)列表拖拽排序的功能

    vue實現(xiàn)列表拖拽排序的功能

    這篇文章主要介紹了vue實現(xiàn)列表拖拽排序的功能,幫助大家更好的理解和學習vue,感興趣的朋友可以了解下
    2020-11-11
  • vue項目雙滑塊組件使用

    vue項目雙滑塊組件使用

    這篇文章主要介紹了vue項目雙滑塊組件使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue監(jiān)聽屬性和計算屬性

    Vue監(jiān)聽屬性和計算屬性

    這篇文章主要介紹了Vue監(jiān)聽屬性和計算屬性,基本用法添加watch屬性,值為一個對象。對象的屬性名就是要監(jiān)視的數(shù)據(jù),屬性值為回調(diào)函數(shù),每當這個屬性名對應的值發(fā)生變化,就會觸發(fā)該回調(diào)函數(shù)執(zhí)行,下面來看詳細內(nèi)容,需要的朋友也可以參考一下
    2021-12-12
  • vue3內(nèi)嵌iframe的傳參與接收參數(shù)代碼示例

    vue3內(nèi)嵌iframe的傳參與接收參數(shù)代碼示例

    這篇文章主要給大家介紹了關(guān)于vue3內(nèi)嵌iframe的傳參與接收參數(shù)的相關(guān)資料,Vue項目中使用iframe及傳值功能相信有不少人都遇到過,需要的朋友可以參考下
    2023-07-07
  • vue實現(xiàn)密碼顯示隱藏切換功能

    vue實現(xiàn)密碼顯示隱藏切換功能

    這篇文章主要介紹了vue實現(xiàn)密碼顯示隱藏切換功能,需要的朋友可以參考下
    2018-02-02
  • 微信小程序如何像vue一樣在動態(tài)綁定類名

    微信小程序如何像vue一樣在動態(tài)綁定類名

    這篇文章主要介紹了微信小程序如何像vue一樣在動態(tài)綁定類名,文中給大家提到了vue與微信小程序的區(qū)別,需要的朋友可以參考下
    2018-04-04
  • 詳解vue父子組件關(guān)于模態(tài)框狀態(tài)的綁定方案

    詳解vue父子組件關(guān)于模態(tài)框狀態(tài)的綁定方案

    這篇文章主要介紹了詳解vue父子組件關(guān)于模態(tài)框狀態(tài)的綁定方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • 在axios中使用params傳參的時候傳入數(shù)組的方法

    在axios中使用params傳參的時候傳入數(shù)組的方法

    今天小編就為大家分享一篇在axios中使用params傳參的時候傳入數(shù)組的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09

最新評論