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

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

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

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

那么我們就需要對(duì)當(dāng)前登錄設(shè)備進(jìn)行判斷。

使用 navigator.userAgent 字符串檢測(cè)

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

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("移動(dòng)端");
  this.$router.replace('/pc_index');
 }else {
  alert("pc端");
  this.$router.replace('/m_index');
 }
}

接下來(lái)就略微介紹一下這個(gè)方法,其中用到了 navigator.userAgent 。

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

<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
// 移動(dòng)端輸出結(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)檢索指定的值,或找到一個(gè)或多個(gè)正則表達(dá)式的匹配,返回值是檢索到的值。
類似的方法還有 indexOf()、laseIndexOf(),但是這兩個(gè)方法返回的是匹配到的值的位置。
所以在判斷方法中使用.match方法匹配所有的移動(dòng)端型號(hào),最后加的 /i 是表示不區(qū)分大小寫。

使用 window.matchMedia() 檢測(cè)

也就是利用媒體查詢的方式進(jìn)行判斷。

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

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

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue.js 初體驗(yàn)之Chrome 插件開(kāi)發(fā)實(shí)錄

    vue.js 初體驗(yàn)之Chrome 插件開(kāi)發(fā)實(shí)錄

    這篇文章主要介紹了vue.js 初體驗(yàn)之Chrome 插件開(kāi)發(fā)實(shí)錄 ,需要的朋友可以參考下
    2017-05-05
  • vue?css?相對(duì)路徑導(dǎo)入問(wèn)題級(jí)踩坑記錄

    vue?css?相對(duì)路徑導(dǎo)入問(wèn)題級(jí)踩坑記錄

    這篇文章主要介紹了vue?css?相對(duì)路徑導(dǎo)入問(wèn)題級(jí)踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue addRoutes路由動(dòng)態(tài)加載操作

    vue addRoutes路由動(dòng)態(tài)加載操作

    這篇文章主要介紹了vue addRoutes路由動(dòng)態(tài)加載操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • 詳解vue 自定義組件使用v-model 及探究其中原理

    詳解vue 自定義組件使用v-model 及探究其中原理

    這篇文章主要介紹了詳解vue 自定義組件使用v-model 及探究其中原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • vue將對(duì)象新增的屬性添加到檢測(cè)序列的方法

    vue將對(duì)象新增的屬性添加到檢測(cè)序列的方法

    下面小編就為大家分享一篇vue將對(duì)象新增的屬性添加到檢測(cè)序列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Vue高級(jí)用法實(shí)例教程之動(dòng)態(tài)組件

    Vue高級(jí)用法實(shí)例教程之動(dòng)態(tài)組件

    讓多個(gè)組件使用同一個(gè)掛載點(diǎn),并動(dòng)態(tài)切換,這就是動(dòng)態(tài)組件,下面這篇文章主要給大家介紹了關(guān)于Vue高級(jí)用法實(shí)例教程之動(dòng)態(tài)組件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • Vue實(shí)現(xiàn)輸入框@功能的示例代碼

    Vue實(shí)現(xiàn)輸入框@功能的示例代碼

    這篇文章主要為大家介紹了如何利用Vue實(shí)現(xiàn)輸入框@功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Vue有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • 淺談nuxtjs校驗(yàn)登錄中間件和混入(mixin)

    淺談nuxtjs校驗(yàn)登錄中間件和混入(mixin)

    這篇文章主要介紹了淺談nuxtjs校驗(yàn)登錄中間件和混入(mixin),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • 在vue中使用el-tab-pane v-show/v-if無(wú)效的解決

    在vue中使用el-tab-pane v-show/v-if無(wú)效的解決

    這篇文章主要介紹了在vue中使用el-tab-pane v-show/v-if無(wú)效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Vue + Echarts頁(yè)面內(nèi)存占用高的問(wèn)題解決方案

    Vue + Echarts頁(yè)面內(nèi)存占用高的問(wèn)題解決方案

    點(diǎn)擊左側(cè)的菜單可以切換不同的看板,有些看板頁(yè)面中的報(bào)表比較多,用戶多次切換后頁(yè)面的內(nèi)存占用可以上升為GB級(jí),嚴(yán)重時(shí)導(dǎo)致頁(yè)面內(nèi)存溢出,使得頁(yè)面崩潰,極大影響了用戶體驗(yàn),本文給大家介紹Vue + Echarts頁(yè)面內(nèi)存占用高的問(wèn)題解決方案,感興趣的朋友一起看看吧
    2024-02-02

最新評(píng)論