1、使用components时特别注意,无论是页面的css文件还是components组件的css文件中,慎重使用【元素选择器(element,也就是直接写标签名的那种形式)】,原因我们通过举例说明,假如我们有如下界面
test.wxml
test.wxss
其中,有两个组件(components),test和test2
test1.wxml
test2.wxml
此时有如下几种情况:
- 如果test1.wxss和test2.wxss 都不给<text>标签加颜色(用元素选择器),那么此时两个组件的颜色会使用test页面中的<text>标签颜色
- 如果test1.wxss和test2.wxss 中任何一个给<text>标签加颜色(用元素选择器),比如绿色。那么此时两个组件和页面test的颜色会使用组件中的<text>标签颜色,我们这里是绿色
- 如果test1.wxss和test2.wxss 都给<text>标签加颜色(用元素选择器),那么此时两个组件和页面test的颜色会使用test.json文件中引用顺序排在上面的那个组件中的<text>标签颜色
正是由于这种复用关系,如果在不清楚该关系的情况下不建议使用元素选择器,即使了解了这种复用关系,从代码的角度建议慎重使用元素选择器,class选择器和id选择器则不会出现这个问题
2、wxml文件中支持"data-"的形式传递数据给js,我们可以通过currentTarg.dataset.key的形式获取传递过来的数据,但是这里面要注意一个问题,如果我们"data-"后面跟的单词中包含大写字母,例如"data-Test",那么"currentTarg.dataset.data-Test"是获取不到我们传递的数据,原因是微信小程序会自动将单词中的所有大写字母转换成小写字母,"currentTarg.dataset.data-test"这样才能获取数据
3、wx.request和wx.uploadFile两个api的success 回调函数中的data的数据类型是不一样的,wx.request的data类型支持string、json对象和json数组,但是wx.uploadFile的data类型只支持string,为什么要强调这个东西,因为我们平时一般都是使用wx.request,返回的数据都是直接用"data.key"或"data[index]"的形式调用,但是一旦我们上传文件时调用wx.uploadFile接口时如果想使用接口返回的数据,就必须先将字符串转换成json(即使用JSON.stringify),否则直按照json对象和数组的调用方式是不可以的,对比如下所示:
wx.request
wx.uploadFile