美文网首页
小程序常见的一些坑

小程序常见的一些坑

作者: zxhnext | 来源:发表于2019-05-15 12:15 被阅读0次
  1. dom中绑定的data-属性会将大写转为小写,在js中获取时postId会变为postid。
<view data-postId>

var postId = event.currentTarget.dataset.postid
  1. wx.showActionSheet 可以调起底部菜单

  2. 小程序快速对齐样式 Alt + shift + f 快速对齐样式, command+p, command+e

  3. css引入

@import "template.wxss"
  1. 向template中传入数据时,加入三个小点代表将对象展开,这样html中套数据时就不需要再加item.
<template is="postItem" data="{{...item}}" />
  1. 定义,修改全局变量
// app.js
globalData: {
    todo: []
}
// 修改:
app.globalData.todo = []
  1. onLaunch只执行一次,onHide是小程序切换到后台运行时被调用,当从后台到前台时onShow会被调用,但onLaunch不会被调用,ui操作在onReady(页面渲染完成后)中执行

  2. 下拉刷新

"enablePullDownRefresh": true

// 下拉触发函数
onPullDownRefresh: function(e) {}
  1. 小程序使用echarts
    下载:https://github.com/ecomfe/echarts-for-weixin

拷贝ec-canvas目录到自己项目目录中,在需要引入图表的页面的json文件中加如下:

{
  "usingComponents": {
    "ec-canvas": "../../ec-canvas/ec-canvas"
  }
}

这一配置的作用是,允许ECharts在pages/bar/index.wxml中使用组件。注意路径的相对位置要写对,如果目录结构和本例相同,就应该像上面这样配置。index.wxm中,ECharts创建了一个组件,内容如下:

<view class="container">
  <ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
</view>

index.js配置如下:

function initChart(canvas, width, height) {
  const chart = echarts.init(canvas, null, {
    width: width,
    height: height
  });
  canvas.setChart(chart);

  var option = {
    ...
  };
  chart.setOption(option);
  return chart;
}

Page({
  data: {
    ec: {
      onInit: initChart
    }
  }
});

这对于所有 ECharts 图表都是通用的,用户只需要修改上面 option 的内容,即可改变图表。option的使用方法参见ECharts配置项文档。对于不熟悉ECharts的用户,可以参见5分钟ECharts上手教程。

  1. 小程序使用E charts的一些坑
    10.1 百分比小于多少时不显示该百分比 可参考如下文章:https://segmentfault.com/q/1010000008096322
var val1 = 100;
var val2 = 100;
var val3 = 100;
....................
data: [
    {
        value: val1,
        name: '<50',
        label: {
            show: function () {
                if (val1 == 0) {
                    return false;
                } else {
                    return true;
                }
            }(),
            formatter: '{d}%',
            position: 'inside'
        },
        labelLine: {
            show: false
        },
        itemStyle: {
            color: '#00FFFF'
        }
    },
    {
        value: val2,
        name: '>=50  <100',
        label: {
            show: function () {
                if (val2 == 0) {
                    return false;
                } else {
                    return true;
                }
            }(),
            formatter: '{d}%',
            position: 'inside'
        },
        labelLine: {
            show: false
        },
        itemStyle: {
            color: '#0000FF'
        }
    },
    {
        value: val3,
        name: '>=100',
        label: {
            show: function () {
                if (val3 == 0) {
                    return false;
                } else {
                    return true;
                }
            }(),
            formatter: '{d}%',
            position: 'inside'
        },
        labelLine: {
            show: false
        },
        itemStyle: {
            color: '#9900FF'
        }
    }
]

10.2 百分比显示几位
https://blog.csdn.net/qq_38439885/article/details/79919912
https://tieba.baidu.com/p/5042843536?red_tag=2124378091

label : {
    show:true ,
    formatter:function(data){
         return data.percent.toFixed(1)+"%"
    }
},

10.3 异步加载数据
https://blog.csdn.net/hao_0420/article/details/80931339
https://blog.csdn.net/weixin_42416141/article/details/81028876

  1. 小程序scroll-y一些坑
    scroll-y无论为true或false都无效,都会滚动。但是设置scroll-y="{{hasMask}}” 有效

  2. 微信小程序滚动穿透,将position设为fixed

  3. iOS的scroll-view不触发bindscrolltolower事件问题 用绝对定位解决

page {
    width: 100%;
    min-height: 100%;
    position: relative;
}
 
scroll-view {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
}
  1. 绝对路径:最前面加 /

  2. 如果不给图片设置宽高,小程序默认宽高为300px,200px

  3. 字体大小可以用px,border也可以用px

  4. 选择器连写可以少起一些class名字,但不能复用,比较斟酌使用

  5. iOS默认字体 苹方,安卓默认字体 思源

  6. 小程序只能继承fontsize, color

  7. line-height可以消除文字间距

  8. bind:tap 最好加上冒号。bind不阻止冒泡,catch阻止冒泡

  9. 布尔类型默认值为false,number默认值为0

  10. 可以在模版字符串中使用函数,如下:

console.log(`${this.test()}123`)
  1. Promise是一个对象,不是函数

  2. 当函数有多项值,可以以对象形式传参,可以在函数外加个大括号(对象解构赋值)

  3. 获取text组件文本值:e.detail.text

  4. 触底事件只能在页面使用,不能再组件使用 onReachBottom

  5. 如果页面没有绑定data值,直接this.data改变值就行,如果绑定了的值,需要setData一下

  6. open-data可以直接获取用户部分信息

  7. 想跳转到另一个小程序必须关联同一个公众号

相关文章

  • 小程序常见的一些坑

    dom中绑定的data-属性会将大写转为小写,在js中获取时postId会变为postid。 wx.showAct...

  • 零碎总结-不定时更新

    后面更新的写在前面。。。。。。微信小程序常见问题 第六,关于textarea 这个坑啊坑!,微信小程序中设置了悬浮...

  • 微信小程序开发BUG经验总结

    摘要: 常见的微信小程序BUG! 小程序开发越来越热,开发中遇到各种各样的bug,在此总结了一些比较容易掉进去的坑...

  • 小程序相关实用文章

    1、微信小程序开发常见之坑2、微信小程序联盟-微信小程序开发社区-小程序3、怎么在弹窗中加入输入框4、微信小程序实...

  • 微信小程序开发中遇到的问题与技巧汇总

    从微信小程序发布到现在经手的小程序也有好几个了,开发过程中多少会遇到一些坑,这里汇总一下开发中遇到过的坑与小程序开...

  • 小程序开发已知的坑

    小程序在开发的时候或多或少的存在一些问题,那常见的坑准备好了,你们千万不要跳哦 1、不支持important2、c...

  • 小程序的一些小坑

    美容美发营销小程序中轮播图模块,轮播图可关联文章链接或者跳转小程序,其中如果轮播图关联文章,并且文章选择h5模式(...

  • 小程序的一些坑

    weui 的 button 的边框问题 button 写入 border:none后还是有浅灰色边框,因为还有...

  • 支付宝小程序 less编译

    最近在踏坑支付宝小程序,目前支付宝小程序的框架还不是很成熟,然后项目要求比较高,为了避免一些无法预料的坑,所以选择...

  • 场景值scene的作用与应用场景

    场景值是用来描述用户是通过什么样的方式进入小程序的(据统计,现在进入小程序的入口有六十多种) 一些常见的小程序入口...

网友评论

      本文标题:小程序常见的一些坑

      本文链接:https://www.haomeiwen.com/subject/pydhoqtx.html