美文网首页
小程序入门(1)

小程序入门(1)

作者: 风之化身呀 | 来源:发表于2018-05-31 15:24 被阅读35次

基本知识

1、三要素

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

  • 1.1、 WXML 模板
    1、常用的标签:view , text , button , image , form , input 等,更多组件
    2、数据绑定:{{...}}
 <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>
  • 1.2、 WXSS
    1、新增了尺寸单位。在写 CSS 样式时,开发者需要考虑到手机设备的屏幕会有不同的宽度和设备像素比,采用一些技巧来换算一些像素单位。WXSS 在底层支持新的尺寸单位 rpx ,开发者可以免去换算的烦恼。且仅支持部分css。支持的CSS情况
    2、写法上跟css一样
    3、内联样式:静态的样式统一写到 class 中。style 接收动态的样式,在运行时会进行解析,请尽量避免将静态的样式写进 style 中,以免影响渲染速度。(个人认为动态添加class还好些,尽量不用内联样式)
<view style="color:{{color}};" />

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

<view class="normal_view" />
  • 1.3、JS
    1、分为全局app.js (名字固定,不能改)和各页面page.js(名字随意,但要和全局app.json中pages的配置一致)
    2、处理事件
// 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()
  }
})

相关文章

  • 小程序进阶(1)豆瓣电影_布局搭建

    -(Ctrl+s)保存编辑的内容,不然调试不会出效果!!! 小程序入门(0)项目创建篇 小程序入门(1)项目结构篇...

  • 小程序入门(1)

    基本知识 1、三要素 wxml , wxss , js 分别对应H5开发中的 html,css,js;另外多一个小...

  • 小程序入门1

    前言 去年9月份的时候,小程序开发者工具还需要破解,每个版本的API会有一些改进,所以在开发的过程中要不时的检查自...

  • 小程序入门(2)浅析篇

    (Ctrl+s)保存编辑的内容,不然调试不会出效果!!! 有了小程序入门(0)项目创建篇||小程序入门(1)项目结...

  • 【教程】微信小程序入门

    微信小程序入门基础知识 Moustache:我的微信小程序入门踩坑之旅 github精选:微信小程序入门简要教程 ...

  • 微信小程序 入门到入门

    微信小程序 入门到入门 创建微信小程序 具体创建方式,傻瓜式进行。 ShowTime 1.实用npm安装第三方包 ...

  • 微信小程序 | 49,小程序入门集锦系列文章20篇

    以下20篇文章,都是关于微信小程序的文章,以入门常见问题为主。如发现谬误,请与笔者联系。 【小程序入门集锦】1,微...

  • 微信小程序

    微信小程序入门 入门简易教程 小程序开发流程注册小程序->代码开发->提审->上线/审核未通过 开发者工具左侧模拟...

  • 10天零基础入门小程序开发(10天上线属于自己的微信小程序)--

    10天零基础入门微信小程序开发,只讲干货,实战入门,10天开发属于自己的上线小程序。 课程优势 1 每节课都有配套...

  • 小程序-入门记录1

    小程序:app json下pages下新建路径 自动创建文件夹及子文件 那么,div,section,artic...

网友评论

      本文标题:小程序入门(1)

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