国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue對(duì)于低版本瀏覽器兼容問題

這篇具有很好參考價(jià)值的文章主要介紹了vue對(duì)于低版本瀏覽器兼容問題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

準(zhǔn)備

由于采用了vite3而不是vue-cli,所以以前的很多兼容方式都不能做。接下來就看一下vite是怎么做到低版本兼容的問題。

工具庫

@vitejs/plugin-legacyds
官方唯一指定的兼容工具庫,使用方式官網(wǎng)都有了

進(jìn)階使用

問題例子

雖然有些確實(shí)是兼容了低版本,但是,有些工具庫利用了些新的特性,頁面還是報(bào)錯(cuò)。

比如下面這個(gè)在低版本手機(jī)的報(bào)錯(cuò),例子是我們這個(gè)框架中,去掉modernPolyfills:['es.array.flat-map','es.object.values'],的兼容性:

[Vue warn]: Unhandled error during execution of watcher callback 
  at <VanConfig> 
  at <App>
[Vue warn]: Unhandled error during execution of setup function 
  at <VanConfig> 
  at <App>
Uncaught TypeError: Object.values(...).flatMap is not a function\n\t/viteTest/assets/index.44986ed0.js:46:12228\nTypeError: Object.values(...).flatMap is not a function
    at getSSRHandler (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:46:12228)
    at A (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:46:12422)
    at Object.onChanged (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:46:13520)
    at x (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:46:12476)
    at callWithErrorHandling (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:4:1576)
    at callWithAsyncErrorHandling (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:4:1698)
    at I (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:4:17067)
    at doWatch (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:4:17371)
    at watch (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:4:15741)
    at useColorMode (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:46:12503)
[Vue warn]: Unhandled error during execution of watcher callback 
  at <VanConfig> 
  at <App>
[Vue warn]: Unhandled error during execution of setup function 
  at <VanConfig> 
  at <App>
[Vue warn]: Unhandled error during execution of scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core 
  at <VanConfig> 
  at <App>
[Vue Router warn]: uncaught error during route navigation:
{}
Uncaught (in promise)  {"name": "TypeError", "message": "Object.values(...).flatMap is not a function", "stack": "TypeError: Object.values(...).flatMap is not a function\n    at getSSRHandler (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:46:12228)\n    at A (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:46:12422)\n    at Object.onChanged (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:46:13520)\n    at x (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:46:12476)\n    at callWithErrorHandling (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:4:1576)\n    at callWithAsyncErrorHandling (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:4:1698)\n    at I (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:4:17067)\n    at doWatch (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:4:17371)\n    at watch (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:4:15741)\n    at useColorMode (https://test.dongguantong.com.cn/viteTest/assets/index.44986ed0.js:46:12503)"}
Unhandled promise rejection {}

解決思路

語法不支持

Object.values(...).flatMap is not a function

我們就可以從中推斷出,肯定是某個(gè)庫,用了高級(jí)語法,然后低版本沒兼容。因?yàn)樵趀s6以上flatMap、Object.values都是支持的,但是我們目前不知道哪個(gè)有。

具體哪個(gè)使用了哪個(gè)庫不支持

然后又根據(jù)

[Vue warn]: Unhandled error during execution of watcher callback 
  at <VanConfig> 
  at <App>

可以確認(rèn),就是我們自己些的VanConfig組件有某個(gè)庫不被支持了

然后我們點(diǎn)進(jìn)去,這個(gè)庫其實(shí)就只是應(yīng)用到了vueUse中的useDark。

我們查歷史可以得知,在安卓6左右,是沒有暗黑模式這個(gè)概念的。我們把這個(gè)useDark組件去掉,再打包。重新打開,我們就確實(shí)能夠在低版本手機(jī)中看到了

兼容語法

但是把某個(gè)庫或者某個(gè)功能去掉,肯定是下下策,最好還是能夠語法兼容。

查閱文檔,其中有2個(gè)專門將高級(jí)語法轉(zhuǎn)換的,是polyfills和modernPolyfills。根據(jù)文檔,我們可以得知,手動(dòng)將高級(jí)語法轉(zhuǎn)換的方式是這樣

import legacy from '@vitejs/plugin-legacy'

export default {
  plugins: [
    legacy({
      polyfills: ['es.promise.finally', 'es/map', 'es/set'],
      modernPolyfills: ['es.promise.finally']
    })
  ]
}

但文檔寫得不是很好,沒有具體說明polyfills和modernPolyfills的關(guān)系,我還是建議2個(gè)都寫得一樣。
具體有哪些可以設(shè)置的值,就是這2個(gè)倉庫的值

  • https://unpkg.com/browse/core-js@3.26.0/
  • https://github.com/zloirock/core-js/tree/master/packages/core-js

根據(jù)報(bào)錯(cuò),是少了'es.array.flat-map''es.object.values',加上去文章來源地址http://www.zghlxwxcb.cn/news/detail-520682.html

legacy({ //babel,兼容老瀏覽器,但是體積會(huì)大80%
      // targets: ['defaults', 'not IE 11']
        targets: ['chrome 52'],
        additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
        renderLegacyChunks: true,
        modernPolyfills:[
            'es.array.flat-map',
            'es.object.values'
        ],
        polyfills: [
            'es.object.values',
            'es.array.flat-map'
        ]
    })

到了這里,關(guān)于vue對(duì)于低版本瀏覽器兼容問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 對(duì)于隨機(jī)生成圖片接口瀏覽器走緩存的問題

    對(duì)于隨機(jī)生成圖片接口瀏覽器走緩存的問題

    前提場(chǎng)景 目前有一個(gè)api 他可以隨機(jī)生成一張圖片,我通過v-for循環(huán)一個(gè)Array渲染出來幾個(gè)img 并且都調(diào)用了該接口,但是每個(gè)img都是一樣的圖片 具體代碼如下 圖片如下所示 只需要給api加個(gè)query,因?yàn)榻涌诤蠖瞬粫?huì)讀這個(gè)query所以不影響,又因?yàn)橛辛诉@個(gè)query使每個(gè)請(qǐng)求接口都不

    2024年01月21日
    瀏覽(18)
  • 【iosH5開發(fā)】IOS瀏覽器對(duì)于Vue3 Element-plus el-input中,input.value.focus無法聚焦問題

    此次項(xiàng)目遇到了兩個(gè)問題,一個(gè)是在Vue3中el-input的input.value.focus()無法觸發(fā),但是在PC或者安卓均可觸發(fā)。 第二個(gè)問題是ios瀏覽器H5沒有辦法默認(rèn)聚焦觸發(fā)鍵盤輸入

    2024年02月13日
    瀏覽(24)
  • 部分瀏覽器兼容遇到的問題

    默認(rèn)的內(nèi)外邊距不同 問題:各個(gè)瀏覽器默認(rèn)的內(nèi)外邊距不同 解決: *{margin:0;padding:0;} 水平居中的問題 問題:設(shè)置 text-align: center; ie6-7文本居中,嵌套的塊元素也會(huì)居中,ff /opera /safari /ie8文本會(huì)居中,嵌套塊不會(huì)居中 解決:塊元素設(shè)置 1、 margin-left:auto;margin-right:auto 2、 marg

    2024年02月16日
    瀏覽(23)
  • vue項(xiàng)目版本打包更新后文件及瀏覽器存在緩存問題解決方案

    在vue.config.js中配置output,打包后的文件會(huì)帶時(shí)間戳 在public/static目錄下新建version.json文件 ?在src中新建 utils文件夾 文件夾中新建versionUpdate.js文件 ?在src文件夾下創(chuàng)建addVersion.js ?寫法二 修改package.json中scripts中的打包命令 版本號(hào)自加使用fs修改文件來實(shí)現(xiàn) 具體思路是:在執(zhí)行

    2024年02月11日
    瀏覽(22)
  • 解決前端瀏覽器兼容性問題

    解決前端瀏覽器兼容性問題時(shí)前端開發(fā)中的一項(xiàng)重要任務(wù)。以下是一些常用的方法來解決這類問題: 1、使用css前綴: 不同瀏覽器可能對(duì)某些CSS屬性有不同的前綴要求??梢允褂肅SS前綴來覆蓋不同瀏覽器的樣式需求。例如,使用 -webkit 前綴來適配WebKit(Chrome、Safari)瀏覽器

    2024年02月09日
    瀏覽(19)
  • 面試:瀏覽器常見問題-優(yōu)化與兼容

    前端開發(fā)瀏覽器優(yōu)化方案有哪些? 以下是一些前端開發(fā)中常用的瀏覽器優(yōu)化方案: 減少HTTP請(qǐng)求數(shù)量:將多個(gè)CSS和JavaScript文件合并為一個(gè)文件,使用CSS sprites來減少圖片請(qǐng)求數(shù)量,使用字體圖標(biāo)替代小圖標(biāo)等,可以減少HTTP請(qǐng)求,加快頁面加載速度。 壓縮和合并文件:使用壓

    2024年02月15日
    瀏覽(22)
  • vue如何進(jìn)行跨瀏覽器兼容性處理

    讓我來和你聊一聊如何讓你的Vue應(yīng)用在不同的瀏覽器和操作系統(tǒng)上正常運(yùn)行。 首先呢,我們要知道一個(gè)事實(shí):不同的瀏覽器有不同的特點(diǎn)和偏好,就像每個(gè)人都有獨(dú)特的個(gè)性和習(xí)慣一樣。你想要讓你的應(yīng)用在每個(gè)人的瀏覽器上都正常運(yùn)行,就要像交朋友一樣,要尊重每個(gè)瀏覽

    2024年02月07日
    瀏覽(25)
  • 前端瀏覽器的兼容性問題探討和解決方案

    解決不同瀏覽器之間的兼容性問題,可以采取以下一些常用的解決方案: 使用 CSS Reset:不同瀏覽器對(duì)于默認(rèn)樣式的定義存在差異,使用 CSS Reset 可以將不同瀏覽器的默認(rèn)樣式重置為統(tǒng)一的基準(zhǔn)樣式,從而減少瀏覽器之間的差異。 使用 CSS Hack 或?yàn)g覽器前綴:某些 CSS 屬性或值

    2024年02月14日
    瀏覽(21)
  • 在uniapp Vue3版本中如何解決web/H5網(wǎng)頁瀏覽器跨域的問題

    在uniapp Vue3版本中如何解決web/H5網(wǎng)頁瀏覽器跨域的問題

    uniapp項(xiàng)目在瀏覽器運(yùn)行,有可能調(diào)用某些接口會(huì)出現(xiàn)跨域問題,報(bào)錯(cuò)如下圖所示: 存在跨域問題的原因是因?yàn)闉g覽器的同源策略,也就是說前端無法直接發(fā)起跨域請(qǐng)求。同源策略是一個(gè)基礎(chǔ)的安全策略,但是這也會(huì)給uniapp/Vue開發(fā)者在部署時(shí)帶來一定的麻煩。一般來說,瀏覽

    2024年01月21日
    瀏覽(84)
  • 如何處理html5新標(biāo)簽的瀏覽器兼容問題?

    處理HTML5新標(biāo)簽的瀏覽器兼容問題,特別是針對(duì)較舊的瀏覽器,可以采用以下幾種方法: 使用JavaScript創(chuàng)建元素 : 對(duì)于不支持HTML5新標(biāo)簽的瀏覽器,可以使用JavaScript(特別是Document Object Model,DOM)來創(chuàng)建這些元素。例如,可以使用 document.createElement(\\\'article\\\') 來在DOM中創(chuàng)建 art

    2024年01月21日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包