在小程序中,觉得的html标签被称做组件,经常使用对应以下
div 改用 view
img 改用 image
a 改用 navigator
同时小程序中也提供了 video视频 audio音频 swiper轮播图等经常使用组件
具体属性与h5有差异,须要注意 特别注意block 并非一个真的组件,不会在页面中作任何渲染,只接受控制属性 在写循环和条件的时候很经常使用
例如php
<block wx:if="{{true}}">
<view>view1</view>
<view>view2</view>
</block>
复制代码
在根目录的app.json全局配置里配置pages字段的第一个值,为小程序的入口文件。其他的页面也要配置到里面html
在根目录的app.js里面使用字段globalData来保存全局变量,以后在不一样页面使用内置的 getApp()方法来获取app ,在使用app.globalData进行调用 例如在app.js中ajax
App({
globalData:{
userName:"edward"
},
onLaunch () {
},
getSomething(){//全局方法
}
...
})
复制代码
在某一page中进行调用json
const app = getApp()
let userName = app.globalData.userName;
Page({
data: {},
onLoad(options) {
let data = app.getSomething();
...
}
})
复制代码
在小程序的开发工具中新建page/component会自动生成这4个文件,很是方便。小程序
若是直接写false没有{{}},js会把false当成字符串,识别为true 想要赋值默认false则须要{{false}} 例如微信小程序
<video src="{{url}}" controls="{{false}}"
show-center-play-btn="{{false}}"
></video>
复制代码
不须要原生js那样处理, 使用onLoad onLoad方法在页面加载时触发。一个页面只会调用一次,能够在 onLoad 的参数中获取打开当前页面路径中的参数。api
在小程序中,我在onLaunch方法请求值并保存到globalData中,以后在首屏页面的onLoad中使用。这时是找不到这个值的。由于请求是异步的,请求结果没有返回,小程序就已经执行了onLoad方法。解决方法以下bash
App({
globalData:{
testId:"",
},
getA(){
let that = this;
return new Promise((resolve, reject) => {
wx.request({
url: that.globalData.ajaxBaseUrl+'getA.php',
header: {'content-type': 'text/html'},
method:"post",
success:res => {
that.globalData.testId = res.data.testId;
resolve(res.data.testId);
}
})
})
}
})
复制代码
page的index.js微信
getB(){
let that = this;
return new Promise((resolve, reject) => {
app.getA().then(testid=>{
wx.request({
url: app.globalData.ajaxBaseUrl+'getB.php?testId='+testid,
header: { 'content-type': 'text/html' },
method:"post",
success:res => {
that.setData({
dataB:res.data.dataB
})
},
fail:res=>{
}
})
})
})
},
复制代码
小程序事件系统app
获取组件上的data-* 数据采用e.currentTarget.dataset.*