小程序开发所遇的问题以及一些小细节

小程序开发所遇的问题以及一些小细节_第1张图片
image.png

1.基本知识

bindtap (冒泡)
catchtap (防止冒泡)
catchtouchmove
e.currentTarget.dataset.index(data- 里面使用的定义)
import { apiV1 } from '../../utils/util';
e.detail.current(swiper里面使用的属性,e.detail / current)

小程序开发所遇的问题以及一些小细节_第2张图片
image.png
小程序开发所遇的问题以及一些小细节_第3张图片
image.png
小程序开发所遇的问题以及一些小细节_第4张图片
image.png

根据官方文档的对应的组件,api,其有它的对应属性可以使用,而e.detail/e.target/e.currentTarget/e.currentTarget.dataset是表示一个对象,后面跟着字段

2. 点击图标变化

小程序开发所遇的问题以及一些小细节_第5张图片
image.png

3.点击直接跳转

小程序开发所遇的问题以及一些小细节_第6张图片
image.png

4. 相当js原生定义一个元素(这个是data-属性)

小程序开发所遇的问题以及一些小细节_第7张图片
image.png

5.查看调试信息,初学者最好开启容易看到debug

小程序开发所遇的问题以及一些小细节_第8张图片
image.png

6.哪个文件放在这就哪个文件是项目启动时出现的首页

小程序开发所遇的问题以及一些小细节_第9张图片
image.png
小程序开发所遇的问题以及一些小细节_第10张图片
image.png

7.定义获取全局变量

小程序开发所遇的问题以及一些小细节_第11张图片
image.png

8.SetData用法:

小程序开发所遇的问题以及一些小细节_第12张图片
image.png

9.跳转页面后设置的返回功能(点击后返回)

小程序开发所遇的问题以及一些小细节_第13张图片
image.png

10.需要装nodejs才生效require

image.png
11.放common公共模块盒,其他页面可以require common.js/a.js里面的函数事件或其他,common.js也可以require a.js
小程序开发所遇的问题以及一些小细节_第14张图片
image.png

可以在其他页面中引用这commonjs文件


小程序开发所遇的问题以及一些小细节_第15张图片
image.png
小程序开发所遇的问题以及一些小细节_第16张图片
image.png
小程序开发所遇的问题以及一些小细节_第17张图片
image.png

12.获取后台数据,在前端中渲染数据出来:

(其中api是指封装好的获取接口的写法,URL_INDEX已定义是接口路径)


小程序开发所遇的问题以及一些小细节_第18张图片
image.png
小程序开发所遇的问题以及一些小细节_第19张图片
image.png
小程序开发所遇的问题以及一些小细节_第20张图片
image.png

13.调用全局方法

小程序开发所遇的问题以及一些小细节_第21张图片
image.png

14.页面生命周期

小程序开发所遇的问题以及一些小细节_第22张图片
image.png

15.布局基础(盒模型flex)

小程序开发所遇的问题以及一些小细节_第23张图片
image.png

父级用了display:flex;子级也会用到,不影响
换行与不换行flex-wrap

小程序开发所遇的问题以及一些小细节_第24张图片
image.png

对齐方法justify-content


小程序开发所遇的问题以及一些小细节_第25张图片
image.png
小程序开发所遇的问题以及一些小细节_第26张图片
image.png

flex-grow(在空间剩余前提下,可以设置扩展,来扩大某个元素的范围)


小程序开发所遇的问题以及一些小细节_第27张图片
image.png

flex-shrink(在空间不足前提下,可以设置等比缩放)


小程序开发所遇的问题以及一些小细节_第28张图片
image.png

16.全局app.js

小程序开发所遇的问题以及一些小细节_第29张图片
image.png

注意:


image.png
小程序开发所遇的问题以及一些小细节_第30张图片
image.png
补充:

image组件不能像jq一样用alt(加载前出现的图片)
进度条组件设置不了椭圆样式
加载小程序项目时出现的后台获取json数据获取不出时,出现空白,不能解决

17.绑定数据判断

小程序开发所遇的问题以及一些小细节_第31张图片
image.png

从orderList.js页面里的拼团中订单跳转到orderGroup.js中,它页面的接口需要设置orderid为某条数据的具体值,才能显示数据出来


小程序开发所遇的问题以及一些小细节_第32张图片
image.png
温馨提示:

关于上拉加载数据,需要页码page/offset,设置在wx.request(相当公司的api中)的data中:
在js中的data设置一个pageNo初始值为1,然后在wx.request前面设置this.data.pageNo++,然后在wx.request的data中设置page:this.data.pageNo;然后设置this.setData({pageNo:this.data.pageNo})

注意一点:看公司的需求接口网站的接收参数和返回参数(接收参数一般是在wx.request中的data定义目的为了可以返回参数--有时需要做到这步才能获取到数据)

关于规格那出现的小问题:
当wx:if在最外面,而它里面也有一个wx:for,隐藏部分的应该全放在wx:for里面

注意:一处不能同时定义两个不能点击事件的动画animation="{{}}"

18.onPullDownRefresh 下拉刷新

onPullDownRefresh: function () {
// 下拉刷新
wx.stopPullDownRefresh();
},

19.获取用户信息wx.userInof

小程序开发所遇的问题以及一些小细节_第33张图片
image.png

20.wx.request中的data里面传值

小程序开发所遇的问题以及一些小细节_第34张图片
image.png

21.接口数据为全局,调用渲染后可以重用(全局与局部的区别)

Wxml


小程序开发所遇的问题以及一些小细节_第35张图片
image.png

js:data


小程序开发所遇的问题以及一些小细节_第36张图片
image.png

事件/接口


小程序开发所遇的问题以及一些小细节_第37张图片
image.png

22.跳转事件判断(说明的就是这部分)

小程序开发所遇的问题以及一些小细节_第38张图片
image.png

23.微信支付接口和确认收货

小程序开发所遇的问题以及一些小细节_第39张图片
image.png
小程序开发所遇的问题以及一些小细节_第40张图片
image.png

24.上拉加载更多(上拉触发)

https://coding.net/u/toBeMN/p/MINA-imitate-cnode-community/git(借鉴别人文章--有类似项目在这)

http://www.wxappclub.com/topic/384(借鉴别人文章)

Wxml 和js


小程序开发所遇的问题以及一些小细节_第41张图片
image.png
小程序开发所遇的问题以及一些小细节_第42张图片
image.png

项目的例子


小程序开发所遇的问题以及一些小细节_第43张图片
image.png

wxml


小程序开发所遇的问题以及一些小细节_第44张图片
image.png

js


小程序开发所遇的问题以及一些小细节_第45张图片
image.png
小程序开发所遇的问题以及一些小细节_第46张图片
image.png

25.动画 淡入淡出和弹跳

image.png
小程序开发所遇的问题以及一些小细节_第47张图片
image.png
小程序开发所遇的问题以及一些小细节_第48张图片
image.png

结合显示隐藏来设置淡入


小程序开发所遇的问题以及一些小细节_第49张图片
image.png
补充:

一个step代表一组动画,可以在一组动画设置多个动画

可以这样表示


image.png
小程序开发所遇的问题以及一些小细节_第50张图片
image.png

启动弹起(相同的动画,也需要在相对应的位置绑定不同的animation)


小程序开发所遇的问题以及一些小细节_第51张图片
image.png
小程序开发所遇的问题以及一些小细节_第52张图片
image.png
补充:
小程序开发所遇的问题以及一些小细节_第53张图片
image.png
小程序开发所遇的问题以及一些小细节_第54张图片
image.png

26.倒计时

小程序开发所遇的问题以及一些小细节_第55张图片
image.png
小程序开发所遇的问题以及一些小细节_第56张图片
image.png
小程序开发所遇的问题以及一些小细节_第57张图片
image.png

设置多个倒计时,可能用不了数组来设置,需要分开设置


小程序开发所遇的问题以及一些小细节_第58张图片
image.png
小程序开发所遇的问题以及一些小细节_第59张图片
image.png
小程序开发所遇的问题以及一些小细节_第60张图片
image.png
小程序开发所遇的问题以及一些小细节_第61张图片
image.png

27.遮罩背后不动,用到catchtouchstart事件

image.png

阻止弹窗时背后不要动


小程序开发所遇的问题以及一些小细节_第62张图片
image.png

wxml

小程序开发所遇的问题以及一些小细节_第63张图片
image.png

data


小程序开发所遇的问题以及一些小细节_第64张图片
image.png

函数事件


小程序开发所遇的问题以及一些小细节_第65张图片
image.png

27.setInterval与clearInterval

小程序开发所遇的问题以及一些小细节_第66张图片
image.png

加载的图标显示


小程序开发所遇的问题以及一些小细节_第67张图片
image.png

scroll-view纵向滚动还有点击锚点
wxml










js

var order = ['red', 'yellow', 'blue', 'green', 'red']
Page({
data: {
toView: 'green',
scrollTop: 100,
scrollLeft: 0
},
//滚动条滚到顶部的时候触发
upper: function (e) {
console.log(e)
},
//滚动条滚到底部的时候触发
lower: function (e) {
console.log(e)},
//滚动条滚动后触发
scroll: function (e) {
console.log(e)},
//点击按钮切换到下一个view
tap: function (e) {
for (var i = 0; i < order.length; ++i) {
if (order === this.data.toView) {
this.setData({
toView: order[i + 1]
})
break
}
}
},
//通过设置滚动条位置实现画面滚动
tapMove: function (e) {
this.setData({
scrollTop: this.data.scrollTop + 10
})
}
})
var order = ['red', 'yellow', 'blue', 'green', 'red']
Page({
data: {
toView: 'green',
scrollTop: 100,
scrollLeft: 0
},
//滚动条滚到顶部的时候触发
upper: function (e) {
console.log(e)
},
//滚动条滚到底部的时候触发
lower: function (e) {
console.log(e)
},
//滚动条滚动后触发
scroll: function (e) {
console.log(e)
},
//点击按钮切换到下一个view
tap: function (e) {
for (var i = 0; i < order.length; ++i) {
if (order === this.data.toView) {
this.setData({
toView: order[i + 1]
})
break
}
}
},
//通过设置滚动条位置实现画面滚动
tapMove: function (e) {
this.setData({
scrollTop: this.data.scrollTop + 10
})
}
})


小程序开发所遇的问题以及一些小细节_第68张图片
image.png

28.显示人物头像和名称 弹窗提醒

wxml


小程序开发所遇的问题以及一些小细节_第69张图片
image.png

js

var util = require('../../utils/util.js')
import { URL_SHOP_TIPS} from '../../utils/urls';
import { api } from '../../utils/util';
Page({
data: {
// logs: [],
orderDatas:[],
nickname:'',
headimg:'',
isShowTips:false
},
onLoad: function () {
// this.setData({
// logs: (wx.getStorageSync('logs') || []).map(function (log) {
// return util.formatTime(new Date(log))
// })
// })
this.showNoticTip();
},
showNoticTip:function(){
let that = this;
setTimeout(function () {
that.setData({
isShowTips: false
})
}, 5000)
let tempdata=this.data.orderDatas;
if(tempdata.length==0){
api(URL_SHOP_TIPS, { pagetype: 1 }, data => {
let tempdata = data.data;
if (tempdata) {
let n = Math.random();
let index = Math.floor(tempdata.length * n);
let orderdata = tempdata[index];
tempdata.splice(index, 1);
this.setData({
orderDatas: tempdata,
nickname: orderdata.nickname,
headimg: orderdata.headimg,
isShowTips: true
})
}
}, true, false)
}else{
let n = Math.random();
let index = Math.floor(tempdata.length * n);
let orderdata=tempdata[index];
//删除当前显示的数据
tempdata.splice(index,1);
this.setData({
orderDatas: tempdata,
nickname: orderdata.nickname,
headimg: orderdata.headimg,
isShowTips: true
})
}
setTimeout(function(){
that.showNoticTip();
},6000)
}
})

29.在wxfor设置的同一个结构布局,可对应算出不同的时间戳

小程序开发所遇的问题以及一些小细节_第70张图片
image.png
小程序开发所遇的问题以及一些小细节_第71张图片
image.png

wxml


小程序开发所遇的问题以及一些小细节_第72张图片
image.png

js


小程序开发所遇的问题以及一些小细节_第73张图片
image.png

30.详情页跳转url

(使用data-区别它们之间的跳转标识)


小程序开发所遇的问题以及一些小细节_第74张图片
image.png
补充说明:

只能分享给朋友,不能分享朋友圈;可以添加到手机桌面,只是相当快捷键

window相当于wx

image.png

31.跳转页面设置

小程序开发所遇的问题以及一些小细节_第75张图片
image.png
image.png

32.用setData强制改变数据

小程序开发所遇的问题以及一些小细节_第76张图片
image.png

33.项目的预览按钮只有注册了appID才能预览

小程序开发所遇的问题以及一些小细节_第77张图片
image.png

34.路径设置

小程序开发所遇的问题以及一些小细节_第78张图片
image.png

窗口window、tabBar底部

(在pages这定义新建的文件夹,自动新建)
文件内不能添加注释行


小程序开发所遇的问题以及一些小细节_第79张图片
image.png
注意
image.png
image.png

35.生命周期函数

小程序开发所遇的问题以及一些小细节_第80张图片
image.png
小程序开发所遇的问题以及一些小细节_第81张图片
image.png
小程序开发所遇的问题以及一些小细节_第82张图片
image.png

36.页面相关事件处理函数

(下拉刷新,用户转发)


小程序开发所遇的问题以及一些小细节_第83张图片
image.png

37.App.json定义的头部标题和底部导航

小程序开发所遇的问题以及一些小细节_第84张图片
image.png

38.轮播

小程序开发所遇的问题以及一些小细节_第85张图片
image.png
小程序开发所遇的问题以及一些小细节_第86张图片
image.png
小程序开发所遇的问题以及一些小细节_第87张图片
image.png

39.加载loading

小程序开发所遇的问题以及一些小细节_第88张图片
image.png
小程序开发所遇的问题以及一些小细节_第89张图片
image.png

40.scroll-view/scroll-x(滚动条横纵向滑动)

注意:

使用竖向滚动scroll-y需要设置高度height

小程序开发所遇的问题以及一些小细节_第90张图片
image.png
小程序开发所遇的问题以及一些小细节_第91张图片
image.png
image.png

41.数据请求wx.request(相当ajax)

小程序开发所遇的问题以及一些小细节_第92张图片
image.png

42.说明:this.setData相当return

movable-view/movable-area

小程序开发所遇的问题以及一些小细节_第93张图片
image.png
小程序开发所遇的问题以及一些小细节_第94张图片
image.png
小程序开发所遇的问题以及一些小细节_第95张图片
image.png
注意:

movable-view必须在组件中,并且必须是直接子节点,否则不能移动。

43.转发

小程序开发所遇的问题以及一些小细节_第96张图片
image.png
小程序开发所遇的问题以及一些小细节_第97张图片
image.png

44.点击事件

小程序开发所遇的问题以及一些小细节_第98张图片
image.png

45.icon小图标

小程序开发所遇的问题以及一些小细节_第99张图片
image.png
小程序开发所遇的问题以及一些小细节_第100张图片
image.png
小程序开发所遇的问题以及一些小细节_第101张图片
image.png

46.text文本(动态增加删除元素)

小程序开发所遇的问题以及一些小细节_第102张图片
image.png
小程序开发所遇的问题以及一些小细节_第103张图片
image.png
小程序开发所遇的问题以及一些小细节_第104张图片
image.png

47.progress进度条

小程序开发所遇的问题以及一些小细节_第105张图片
image.png
小程序开发所遇的问题以及一些小细节_第106张图片
image.png

48.button按钮

小程序开发所遇的问题以及一些小细节_第107张图片
image.png
小程序开发所遇的问题以及一些小细节_第108张图片
image.png
小程序开发所遇的问题以及一些小细节_第109张图片
image.png
小程序开发所遇的问题以及一些小细节_第110张图片
image.png
小程序开发所遇的问题以及一些小细节_第111张图片
image.png

49.checkbox多选按钮

image.png
小程序开发所遇的问题以及一些小细节_第112张图片
image.png
小程序开发所遇的问题以及一些小细节_第113张图片
image.png

50.from表单

小程序开发所遇的问题以及一些小细节_第114张图片
image.png
小程序开发所遇的问题以及一些小细节_第115张图片
image.png
小程序开发所遇的问题以及一些小细节_第116张图片
image.png

51.input输入框

(有一处用到相当vue中的v-model双向数据绑定)


小程序开发所遇的问题以及一些小细节_第117张图片
image.png
小程序开发所遇的问题以及一些小细节_第118张图片
image.png
小程序开发所遇的问题以及一些小细节_第119张图片
image.png
小程序开发所遇的问题以及一些小细节_第120张图片
image.png
小程序开发所遇的问题以及一些小细节_第121张图片
image.png
小程序开发所遇的问题以及一些小细节_第122张图片
image.png
小程序开发所遇的问题以及一些小细节_第123张图片
image.png

52.label标签

小程序开发所遇的问题以及一些小细节_第124张图片
image.png
小程序开发所遇的问题以及一些小细节_第125张图片
image.png
小程序开发所遇的问题以及一些小细节_第126张图片
image.png
小程序开发所遇的问题以及一些小细节_第127张图片
image.png
小程序开发所遇的问题以及一些小细节_第128张图片
image.png
小程序开发所遇的问题以及一些小细节_第129张图片
image.png

53.客服

(客服设置的账号,是在微信小程序平台注册后登录设置就好)


image.png
小程序开发所遇的问题以及一些小细节_第130张图片
image.png

官方文档这部分资料目的是说明当用户发送消息自动生成的json数据


小程序开发所遇的问题以及一些小细节_第131张图片
image.png

54.事件

小程序开发所遇的问题以及一些小细节_第132张图片
image.png

55.时间戳(时间相差值,几时几分几秒)

小程序开发所遇的问题以及一些小细节_第133张图片
image.png
小程序开发所遇的问题以及一些小细节_第134张图片
image.png
小程序开发所遇的问题以及一些小细节_第135张图片
image.png
image.png
补充:
小程序开发所遇的问题以及一些小细节_第136张图片
image.png

56.获取后台json数据的区别

(本人的理解:jq和小程序的区别)

JQ :

ajax获取数据,用$.ajax,都在js中获取到的数据,获取到的数据在ajax中,用类别定义对应的元素获取后台的相对应json字段

小程序:

wx.require获取数据 当用到多个类似结构数据。可以用wx.for={{arry}},在data定义一个数组,data:{ arry:{} },然后在后面的onload(也可以放在其他的全局函数内)中用wx.require定义tempdata=data.product(这个product是后台的json数据的名字,这可以改变),然后需要获取字段,就在this.setdata那改变arry:tempdata (跟jq不同是,在wxml中已经用 arry.对象 形式表示了,不需要在js中的wx.require中再用类别分明对应不同元素位置插入相对应的元素字段)

57.commodity收藏(是否已收藏)

直接在页面中判断是否收藏,而改变它的图片路径


image.png
小程序开发所遇的问题以及一些小细节_第137张图片
image.png

58.从本地缓存中同步修改指定 key 对应的内容

小程序开发所遇的问题以及一些小细节_第138张图片
image.png
image.png

本文作者lilyping
越努力,越幸运
原文链接:https://www.jianshu.com/u/3908e601f4ec
微信公众号:BestLilyPing
github:https://github.com/lilyping
Demos源码地址:https://github.com/lilyping

你可能感兴趣的:(小程序开发所遇的问题以及一些小细节)