最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于VUE實現(xiàn)判斷設(shè)備是PC還是移動端

 更新時間:2020年07月03日 09:38:11   作者:奔跑的太陽花  
這篇文章主要介紹了基于VUE實現(xiàn)判斷設(shè)備是PC還是移動端,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

實際開發(fā)工作中會經(jīng)常遇到一個需求,就是判斷當前登錄網(wǎng)頁的設(shè)備是PC還是移動,要求PC端和移動端顯示的是不同的網(wǎng)頁內(nèi)容。

那么我們就需要對當前登錄設(shè)備進行判斷。

使用 navigator.userAgent 字符串檢測

我是在PC端開發(fā)完接到要做移動端的需求,而且移動端只有一個頁面,我就統(tǒng)一放在了一個文件夾內(nèi)。
首先在 app.vue 文件內(nèi),判斷當前設(shè)備是pc端還是移動端。

methods: {
 // 添加判斷方法
 isMobile() {
  let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
  return flag;
  }
},
mounted: {
 if(this.isMobile) {
  alert("移動端");
  this.$router.replace('/pc_index');
 }else {
  alert("pc端");
  this.$router.replace('/m_index');
 }
}

接下來就略微介紹一下這個方法,其中用到了 navigator.userAgent 。

這個方法會返回一個只讀的字符串,聲明了瀏覽器在發(fā)送 http 請求時的用戶代理頭的值。例如:

<script>
 document.write("用戶代理:" + navigator.userAgent)
</script>

// pc端輸出結(jié)果:
用戶代理: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
// 移動端輸出結(jié)果:
用戶代理: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1

.match 方法用于在字符串內(nèi)檢索指定的值,或找到一個或多個正則表達式的匹配,返回值是檢索到的值。
類似的方法還有 indexOf()、laseIndexOf(),但是這兩個方法返回的是匹配到的值的位置。
所以在判斷方法中使用.match方法匹配所有的移動端型號,最后加的 /i 是表示不區(qū)分大小寫。

使用 window.matchMedia() 檢測

也就是利用媒體查詢的方式進行判斷。

window.matchMedia 方法會返回一個新的 mediaQueryList 對象,表示指定的媒體查詢字符串解析后的結(jié)果。例如:

var result = window.matchMedia("(min-width: 400px)").matches;
console.log(result) //true

window.matchMedia 方法會返回兩個參數(shù),一個是 media,就是查詢的語句內(nèi)容。另一個是 matches,是返回的結(jié)果,為 boolean 類型。

根據(jù)當前設(shè)備的視口寬度判斷是否是移動端設(shè)備。

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

相關(guān)文章

  • 解決vue數(shù)據(jù)不實時更新的問題(數(shù)據(jù)更改了,但數(shù)據(jù)不實時更新)

    解決vue數(shù)據(jù)不實時更新的問題(數(shù)據(jù)更改了,但數(shù)據(jù)不實時更新)

    這篇文章主要介紹了解決vue數(shù)據(jù)不實時更新的問題(數(shù)據(jù)更改了,但數(shù)據(jù)不實時更新),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 搭建Vue3+Vite+Ts腳手架的示例代碼

    搭建Vue3+Vite+Ts腳手架的示例代碼

    本文介紹了Vue3+Vite+Ts搭建腳手架的實現(xiàn),步驟包括創(chuàng)建項目、選擇技術(shù)棧、安裝依賴及運行項目,旨在為開發(fā)者提供一個簡易快速的搭建流程,感興趣的可以了解一下
    2024-11-11
  • vuejs使用$emit和$on進行組件之間的傳值的示例

    vuejs使用$emit和$on進行組件之間的傳值的示例

    本篇文章主要介紹了vuejs使用$emit和$on進行組件之間的傳值的示例,具有一定的參考價值,有興趣的可以了解一下
    2017-10-10
  • vue3?elementPlus?table實現(xiàn)列寬可拖拽功能

    vue3?elementPlus?table實現(xiàn)列寬可拖拽功能

    這篇文章主要介紹了vue3?elementPlus?table實現(xiàn)列寬可拖拽功能,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Vuex模塊化與持久化深入講解

    Vuex模塊化與持久化深入講解

    在實際項目開發(fā)過程中,如果公共數(shù)據(jù)比較多我們會使用vuex做公共狀態(tài)管理,但是在對瀏覽器進行刷新操作的時候,會導(dǎo)致vuex內(nèi)的數(shù)據(jù)丟失,這種情況有些時候是沒問題的,但是有的時候我們需要某些數(shù)據(jù)可以持久化的保存,這樣就需要做對應(yīng)的處理
    2023-01-01
  • vue2滾動條加載更多數(shù)據(jù)實現(xiàn)代碼

    vue2滾動條加載更多數(shù)據(jù)實現(xiàn)代碼

    本篇文章主要介紹了vue2滾動條加載更多數(shù)據(jù)實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • vue3使用Facebook嵌入式視頻播放器API方法詳解

    vue3使用Facebook嵌入式視頻播放器API方法詳解

    這篇文章主要為大家介紹了vue3使用Facebook嵌入式視頻播放器API方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 淺談vue-router 路由傳參的方法

    淺談vue-router 路由傳參的方法

    這篇文章主要介紹了淺談vue-router 路由傳參的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Vue超詳細講解重試機制示例

    Vue超詳細講解重試機制示例

    這篇文章主要介紹了Vue重試機制示例,重試指的是當加載出錯時,有能力重新發(fā)起加載組件的請求。異步組件加載失敗后的重試機制,與請求服務(wù)端接口失敗后的重試機制一樣
    2023-01-01
  • vue實現(xiàn)記事本功能

    vue實現(xiàn)記事本功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)記事本功能,記事本可以進行添加刪除事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評論

噶尔县| 江达县| 榆社县| 甘洛县| 涟源市| 海丰县| 南陵县| 商城县| 平阳县| 汽车| 龙游县| 交口县| 通江县| 吉安市| 宁蒗| 长顺县| 溆浦县| 凤山市| 醴陵市| 松原市| 赫章县| 章丘市| 灵武市| 全南县| 荣成市| 南澳县| 聊城市| 进贤县| 沙坪坝区| 通道| 乌审旗| 称多县| 乌恰县| 施甸县| 临夏市| 洛隆县| 洛阳市| 辉县市| 涿州市| 甘洛县| 乡宁县|