响应式小问题太多?所以还是写两套代码,判断用户端从而显示不同的代码比较简单明了
1. 先把判断的方法写在全局,方便调用
在src下创建mixin文件夹,创建index.js文件
// mixin 混入, 是指可以将一个符合 Vue 配置要求的对象, 合并到组件当中
export default {
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;
},
}
}
2. main.js 中引入
import myMixin from "./mixin/index";
Vue.mixin(myMixin);
3. 在你所需要判断的页面写入方法
mounted() {
if (this._isMobile()) {
// 跳转至手机端路由
if (this.$route.path != "/m_home") {
this.$router.replace("/m_home");
}
} else {
// 跳转至 pc 端路由
if (this.$route.path != "/home") {
this.$router.replace("/home");
}
}
},
上面方法比较操作频繁,也可以直接在app.vue里面写,这样的话就只能跳到一个页面