工作学习中遇到的零散知识点,不分类,看到啥,学到啥,容易忘记的记录在此!!!
css部分:
1. 可以获取所有的css 样式 .style 只能获取行内设置的样式
var test = document.getElementById("test"),
demo = window.getComputedStyle(test);
2. 弹性布局,设置 align-items: center; 会导致子元素高度自适应,不会以最高子元素高度为准,并且子元素不要设置 height: 100% 否则也会导致 子元素高度自适应
js部分:
一:js中!! 的使用
function fn(options) {
var user = !!options.user
}
!! 的用法,转成布尔类型,如果options.user 值存在 就取options.user设置的值,否则为false 而不是 undefined
二:处理 'age.n.m' 返回取值后的结果
this.getter = function() { // 需要将表达式转化成函数
// 当数据取值时,会进行依赖收集
let path = exprOrFn.split('.') // 处理 vm['age']['n']
let obj = vm
for(let i=0;i<path.length;i++) {
obj = obj[path[i]]
}
return obj // getter 方法
}
// 监听页面关闭,页面关闭还能请求接口,用fetch 请求,不能用axios
window.addEventListener('unload', ()=> {
if(this.info&&this.info.rangeType != 2) return
let data = {
stayTime: new Date().getTime() - this.showTime,
id: this.trackId,
wxOpenId: localStorage.getItem('openId') || ''
}
fetch(`${domain.javaUrl}/log-server/stayTime`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data),
keepalive: true
});
});
重点:
小程序里直接修改传过来的list数组 父组件是不改变的 也不会触发监听,只有父组件list 变了,才会触发监听 相当于小程序主动帮你复制克隆了一份数据,如果想要同步父组件修改,主动emit 通知父组件即可,