2019.11.20
1.vscode 隐藏某类文件
答:
在.vscode/settings.json
"editor.tabSize": 2,
"eslint.autoFixOnSave": true,
"javascript.implicitProjectConfig.experimentalDecorators": true,
"files.exclude": {
// 隐藏.wxss文件
"**/*.wxss": true
}
1.1.怎么让vscode执行.vscode/settings.json中的配置
答:
最初更改settings.json然后保存没生效,所以我在怀疑这恶搞文件有没有被执行。
其实在你保存的时候这个文件就已经被执行了,是我文件中写的有问题。
2.安装了eslint,prettier,保存时代码还是没有自动格式化
答:
首先确保编辑器开启了eslint的autoFixOnSave功能。
然后检查是否安装了eslint-plugin-prettier
,他是负责将 Prettier 添加为 ESLint 规则。参考链接
3.git 查看某次提交的改动
答:
1.git log --oneline
2.git show {commitid}
4. 小程序如何编译less
1.简单方法:自己开发行,团队开发因为less转wxss不可逆,不能口头约定wxss文件只读。
2.gulp: 插件编译
2019.11.25
5. 小程序中 properties和data的区别在哪里?
答:
properties: react的props
data: react的state
6. box-shadow
这是一个老生常谈的问题,总是记不住 box-shadow: h-shadow v-shadow blur spread color inset;
7.小程序为什么组件的事件要放在methods里,page则不用
答: 规定:
8.上层元素visibility:hidden后,下层的按钮可以点击吗?
答: 可以
8.坑:
page的.json文件引用组件时,需要注意顺序,否则引用相同组件时样式会相互覆盖。
2019.11.29
9.自定义组件如何使用app.wxss中定义的样式
答:需要在自定义组件中配置:
10.input绑定bindinput后,在微信开发者工具中无效,真机有效
答:
把其他事件也绑定上
bindinput="bindinput"
bindfocus="bindfocus"
bindblur="bindblur"
bindconfirm="bindconfirm" bindkeyboardheightchange="bindkeyboardheightchange"
11.自定义小程序Button组件中无法触发form-type=submit的事件
答:
tip:目前,设置了form-type的button只会对当前组件中的form有效。因而,将button封装在自定义组件中,而from在自定义组件外,将会使这个button的form-type失效。
意思就是必须用原生button,不能包装一层,太sb了。
那就是不用原生button,该怎么获取表单的值呢?我是干脆不使用form了,在bindinput事件时,更新组件中维护的数据。
2019.12.2
12.有时.json中使用相对路径会报错not found
答:三级目录及三级目录以下的目录,必须从2级目录开始找,也就是说,三级目录中不能使用"./",必须先找到2级目录"../3级目录/"。
2019.12.9
13.slot插槽渲染后的位置不对
答:微信开发者工具的bug
https://developers.weixin.qq....
2019.12.11
14.小程序子组件监听properties改变触发更新
答:
小程序没有willReciveProps这个生命周期。也没提供监听properties改变的方法。
解决方法:父->子传值,在react中只有props。小程序中propprties也是做这个用的,但是小程序中还有一种父->子的传递方法:this.selectComponent('#子组件id')
再父组件中this.selectComponent('#子组件id')
拿到自组件,可以直接调用this.selectComponent('#子组件id').setData()
,这时你在父组件中就可以set子组件的data了。
2019.12.27
15.微信小程序 canvas绘制不能绘制Base64数据图片
生成海报时,后端返回base64格式的二维码,发现3在canvas上绘制失败,导致下载失败。
https://developers.weixin.qq....
解决方法:https://www.jianshu.com/p/844...
2020.1.9
16.git 二进制文件冲突怎么处理
在我们合并分支的时候,如果两个分支都进行了修改那么就会产生合并冲突。对于非二进制文件的冲突解决,git会给出冲突的位置我们可以手动修改然后再commit。但是对于二进制文件无法手动编辑,我们只能用下面的办法取其中的一个版本。 git checkout --ours
采用当前更改 git checkout --theirs
采用传入的更改
例如:
$ git merge B #试图将B分支合并到A分支上,会提示test.docx合并冲突
$ git checkout test.docx --ours #保留A分支(当前分支)上的改动
$ git add test.docx #提交改动后的文件
$ git commit -m "解决了test.docx上的冲突,保留了A分支改动"
17.修复小程序ios类似下拉通知或进入控制中心再回来音频不播放的bug
可以用wx.onAudioInterruptionBegin/wx.onAudioInterruptionEnd这对事件来处理类似事件。
18.cocos 性能问题 避免同时实例化大量节点(超过200个)
分帧加载,使用genarator函数
2020.2.6
19.奇偶判断
fn(num){
return !!(num&1)
}
'&' 按位与
举例:7 & 3
7转换二进制:111
3转换:11
比较结果为:011
011转换为十进制:3
因此7 & 3 = 3
20.进制转换
toString不只用于转换为字符串,还有可以将10进制的数,转换为n进制数的本领(n默认为10): num.toString(n)
同样的,将n进制的数转换成10进制的数,也有一个方法: parseInt(num,n)
举例:
parseInt(111,2) = 7
另外: 想将m进制的数转换为n进制的数,需要先将m转换到10进制过渡:
// 将m进制的数转换为n进制
fn(num,m,n){
return parseInt(num,m).toString(n)
}
21.cocos 想让事件向上冒泡
先来说说html5中的事件机制:
<div class="parent">
<div class="children"></div>
</div>
1.单独给parent绑定事件,点击c和p都触发;
2.单独给children绑定事件,只有点击c触发。
现在cocos中也有类似父子关系的两个node,由于子node太小,绑定在其身上的事件不容易触发,所以我将事件移动到父node上去,在cocosCreator中给父node添加一个Button属性,然后单独给父node上绑定事件;
结果只有点击父node才可以触发,点击子node不触发,这跟我们前面总结h5中的表现不一样啊???
别急,原因是我虽然单独给父node绑定了事件,可是子node上的Button属性我并没有remove,将其remove就好了。
所以,我理解如果一个节点挂上了Button属性的话,Button属性中应该有类似e.preventDefault(),导致事件没有向上冒泡。
总结:
1.cocos这点上和h5机制是一样的,事件自带冒泡;
2.没冒泡的原因是子节点没有禁用点击事件;
2020.03.02
22.把A分支上的commit,迁移到B分支上
1.切到A分支上复制想要迁移的commitId
2.切到B分支上执行:git cherry-pick [commitId]
3.此时处于commit后的状态,检查没问题 push
23.清除某条localStorage
localStorage.removeItem('key')
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。