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;

e16ce966876d721903f04fd3ba0f0162.jpeg

7.小程序为什么组件的事件要放在methods里,page则不用

答: 规定:

8.上层元素visibility:hidden后,下层的按钮可以点击吗?
答: 可以

8.坑:

page的.json文件引用组件时,需要注意顺序,否则引用相同组件时样式会相互覆盖。

2019.11.29

9.自定义组件如何使用app.wxss中定义的样式

答:需要在自定义组件中配置:

官方文档
b12e7c3c980e7ec764bf0416b5a9057d.png

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')


yzbao
626 声望19 粉丝

Uncaught ReferenceError