小程序入门(1)

2018-05-31  本文已影响35人  风之化身呀

基本知识

1、三要素

wxml , wxss , js 分别对应H5开发中的 html,css,js;另外多一个小程序特有的app.json文件,这仅是一个配置文件。每个页面都是由这四种文件组成

 <text class="{{'share-price-text ' + (gains < 0 ? 'share-loss' : 'share-gain')}}">{{price}}</text>

3、DOM控制:wx:if 更多控制

<button wx:if="{{!hasUserInfo && canIUse}}"> 获取头像昵称 </button>

4、事件绑定 更多事件

<button bindtap="clickMe">点击我</button>
<view style="color:{{color}};" />

4、class:用于指定样式规则,其属性值是样式规则中类选择器名(样式类名)的集合,样式类名不需要带上.,样式类名之间用空格分隔。

<view class="normal_view" />
// page.js写法
Page({
  clickMe: function() {
    this.setData({ msg: "Hello World" })     // 设置状态数据,供wxml中使用
  }
})
// app.js写法
App({
  clickMe: function() {
    this.setData({ msg: "Hello World" })
  }
})

3、app.js

App({
  onLaunch: function () {
    // 小程序启动之后 触发
  },
 globalData:{}
})

4、page.js

Page({
  data: { // 参与页面渲染的数据
    logs: []
  },
  onLoad: function () {
    // 页面渲染后 执行
  }
})

5、微信原生API(均已wx开头)

// 1、网络类,如:
wx.request({
  url: 'test.php', //仅为示例,并非真实的接口地址
  data: {
     x: '' ,
     y: ''
  },
  header: {
      'content-type': 'application/json' // 默认值
  },
  success: function(res) {
    console.log(res.data)
  }
})
// 2、数据存储类(缓存类,类似localStorage。每个方法都有同步和异步两种调用形式,本地数据存储的大小限制为 10MB)
// 异步调用
wx.setStorage({
  key:"key",
  data:"value"
})
// 同步调用
try {
    wx.setStorageSync('key', 'value')     
} catch (e) {    
}

wx.getStorage({
  key: 'key',
  success: function(res) {
      console.log(res.data)
  } 
})

try {
  var value = wx.getStorageSync('key')
  if (value) {
      // Do something with return value
  }
} catch (e) {
  // Do something when catch error
}

wx.removeStorage({
  key: 'key',
  success: function(res) {
    console.log(res.data)
  } 
})

try {
  wx.removeStorageSync('key')
} catch (e) {
  // Do something when catch error
}

wx.clearStorage()

try {
    wx.clearStorageSync()
} catch(e) {
  // Do something when catch error
}
// 3、界面类(显示一些界面组件,如toast,loading,modal等,有3个特殊的,wx.redirectTo & wx.navigateTo & wx.switchTab)
// toast
wx.showToast({
  title: '成功',
  icon: 'success',
  duration: 2000
})
// wx.navigateTo,保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面
wx.navigateTo({
  url: 'test?id=1'
})
// wx.redirectTo,关闭当前页面,跳转到应用内的某个页面。
wx.redirectTo({
  url: 'test?id=1'
})
// wx.switchTab,跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

{
  "tabBar": {
    "list": [{
      "pagePath": "index",
      "text": "首页"
    },{
      "pagePath": "other",
      "text": "其他"
    }]
  }
}
wx.switchTab({
  url: '/index'
})
// 4、媒体类(上传、预览图片;录音、播放语音等)
// 5、文件类(保存文件等)
// 6、位置类
wx.getLocation({
  type: 'wgs84',
  success: function(res) {
    var latitude = res.latitude
    var longitude = res.longitude
    var speed = res.speed
    var accuracy = res.accuracy
  }
})
// 7、设备类(获取网络状态、系统信息等)
wx.getNetworkType({
  success: function(res) {
    // 返回网络类型, 有效值:
    // wifi/2g/3g/4g/unknown(Android下不常见的网络类型)/none(无网络)
    var networkType = res.networkType
  }
})
// 8、WXML查询节点 APIz(类似document.querySelector())
Page({
  getFields: function(){
    wx.createSelectorQuery().select('#the-id').fields({
      dataset: true,
      size: true,
      scrollOffset: true,
      properties: ['scrollX', 'scrollY']
    }, function(res){
      res.dataset    // 节点的dataset
      res.width      // 节点的宽度
      res.height     // 节点的高度
      res.scrollLeft // 节点的水平滚动位置
      res.scrollTop  // 节点的竖直滚动位置
      res.scrollX    // 节点 scroll-x 属性的当前值
      res.scrollY    // 节点 scroll-y 属性的当前值
    }).exec()
  }
})
上一篇 下一篇

猜你喜欢

热点阅读