1.环境判断
navigator是HTML中的内置对象,包含浏览器的信息;
userAgent是navigator的属性方法,可返回由客户机发送服务器的 user-agent 头部的值,作用是返回当前用户所使用的是什么浏览器,toLowerCase()将得到的信息变成小写,固定格式。
let user = navigator.userAgent.toLowerCase();
let isWx = user.match(/MicroMessenger/i) == "micromessenger"; // 判断所在的环境是否是微信内置浏览器
let isWxWork = user.match(/WxWork/i) == "wxwork"; // 判断所处环境是微信还是企业微信
let isIPad = user.match(/iPad/i) == "iPad"; // 判断所处环境是否是iPad
let isIPhone = user.match(/iPhone/i) == "iPhone"; // 判断所处环境是否是iPhone
let isAndroid = user.match(/android/i) == "android"; // 判断所处环境是否是android
let isWeibo = user.match(/weibo/i) == "weibo"; // 判断所处环境是否是weibo
let isQQ = user.indexOf('qq/')!= -1; // 判断所处环境是否是QQ
let isMobile = user.match(/mobile/) == "mobile"; // 判断所处环境是否是移动设备
2.输入框数字格式化,在数字变化时将数字格式化
formatter(e) {
let reg = /^(\d+)\.(\d\d).*$/
let value = e.target.value
value = (value + '')
.replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符
.replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的
.replace(reg, '$1.$2') // 只能输入两位小数
if (value.indexOf('.') < 0 && value !== '') {
// 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
value = parseFloat(value)
}
if ((value + '').startsWith('.')) {
value = ''
}
if (value > 200) value = 200
this.$nextTick(() => {
this.form.num = e.target.value = value
})
},
3.background简写:
background:url('') 0% 0% / 100% 100% no-repeat; (路径 偏移/宽高 图片展开方式)
4.带参跳转
// $router: 路由操作对象,只写
// $route : 路由信息对象,只读
this.$router.push({
// 1.query方式 注:query方式是通过URL传递的,URL传参数长度是有限制,参数过长考虑用params传,或vuex和浏览器存储。
path: '/xxxx',
query: {
id:''
}
// 2.params方式
name: "xxxx",
params: {
id: ""
}
});
接收参数:
this.$route.query.id // query方式
this.$route.params.id // params方式
5.链接跳转
// location.href
window.location.href="http://www.baidu.com"
==>
<a href="http://www.baidu.com" target="_self">location.href</a>
// window.open 打开一个新的浏览器窗口或查找一个已命名的窗口,非手动跳转可能会被拦截
window.open("http://www.baidu.com")
==>
<a href="http://www.baidu.com" target="_blank">window.open</a>
// window.history
window.history.back(-1);
// location.replace 用一个新文档取代当前文档
location.replace('xxxxxxxxxx')