微信小程序_01

1803 查看

1.下载微信小程序编辑器:下载微信小程序编辑器

2.创建小程序应用:打开刚才下载的dmg,用微信扫面二维码登陆。点击本地小程序项目,就可以开始开发了。

3.先介绍下目录结构:


F6B51227-E9DB-433B-86E3-336916B6E88B.png


pages文件夹中放的都是页面,app.js相当于iOS的appdelegate,app.json就是app的配置,app.wxss就是css样式文件。
每一个页面都单独有一个js,json,wxss文件。
4.app.json文件分析

{//所有的页面都在这里列出来
  "pages":[
    "pages/index/index",
    "pages/logs/logs",
    "pages/button/button"
  ],
  "window":{ //app的样式
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle":"black"
  }
}

5.先做一个小demo(js,json,wxml,wxss都是新建的)
代码:

//获取应用实例
var app = getApp()
Page({
  data:{
    count:0,
    text: '加载了了0次',
    loadingstatus: false,
  },
  onLoad:function(options){
    // 页面初始化 options为页面跳转所带来的参数
    console.log("onLoad");

  },
  onReady:function(){
    // 页面渲染完成
    console.log("onReady");
  },
  onShow:function(){
    // 页面显示
    console.log("onShow");
  },
  onHide:function(){
    // 页面隐藏
    console.log("onHide");
  },
  onUnload:function(){
    // 页面关闭
    console.log("onUnload");
  },
  button1click: function(){
   var that = this;
   that.data.count++;
   that.setData({ //更改属性的值
       text:'加载了'+that.data.count+'次',
       loadingstatus:that.data.count%2 == 0 ? true:false,
   })
  },
})

//这里的data就是页面的数据和函数,
onShow,onHide,onReady,onUnload都是生命周期函数,
button1Click是button的click函数
这框架是data和页面的绑定起来的,只要改变data的值,页面就会随着变化,这点和iOS有点不同。

button.json 文件
{
     "navigationBarTitleText": "ButtonDemo" 这是页面的title
}

button.wxml文件

<view class="container"> 
    <view class="button-wrapper">
    <button type="default" bindtap="button1click"  size="default"  
    loading="{{loadingstatus}}" > 点我
    </button>
     </view>
<text class="countClick" id="text1">{{text}}
</text>
</view>

button.wxss

.countClick{
    margin-top: 100rpx;
    width: 200rpx;
    height: 50rpx;
    text-align: center;
    font-size: 1em;
    background-color: cadetblue;
}

 bindtap="button1click"  绑定点击事件到buttonclick函数
{{text}}   {{data中的属性}}

今天还看到一段比较好玩的代码:

for (var i = 0; i < types.length; ++i) {
  (function(type) {
    pageObject[type] = function(e) {
      var key = type + 'Size'
      var changedData = {}
      changedData[key] =
        this.data[key] === 'default' ? 'mini' : 'default'
      this.setData(changedData)
    }
  })(types[i])

可能做iOS的没看过js的人这点看不太懂,我也是新手,哪里说的不对,欢迎前端大神指正。
大概意思是:

for (var i = 0; i < types.length; ++i) { 循环数组
  (function(type) { //写法js(function)(item)
    pageObject[type] = function(e) { //添加属性函数 就是增加了几个函数。
      var key = type + 'Size' //拼接字符串
      var changedData = {} //字典
      changedData[key] = //字典赋值
        this.data[key] === 'default' ? 'mini' : 'default'
      this.setData(changedData) //相当于iOS的kvo用hash值的方式给自己的属性赋值
    }
  })(types[i]) //执行函数

demo地址今天github抽筋了。稍后上传。