微信小程序-入门篇

转载请标明出处:
http://blog.csdn.net/iamzgx/article/details/72615506
本文出自:【iGoach的博客】

前言

2017年1月9日,微信小程序发布。这也标志着FaceBookRN,阿里的WeexTencent的小程序这三架马车在2017年并驱骑行。今天,就先来说说三架马车其中之一的小程序。

# 搭建开发环境

1.成为微信开发者
微信公众平台注册账号并成为微信的个人或企业开发者

2.下载开发工具
点击下载,然后傻瓜式安装好就行了

3.安装NodeJs
官网下载NodeJs,然后也是傻瓜式的安装好,安装好后,NodeJS会自动在PC的环境变量Path里面添加安装好的NodeJS根目录,最后再DOC执行node命令验证是否安装好就行了,安装好后如下图:

NodeJS.png

创建HelloWorld

打开微信Web开发工具,可以看到

创建项目.png

如果是企业开发者,直接填写AppID就好了,如果不是我们点击无AppID,如果我们前面没有安装NodeJS,这里是不会显示无AppID的,所以我们得正确安装NodeJS
接下来就是填写项目名称和项目工作目录就行了。点击添加项目,我们就创建好了第一个项目。如下图

创建完后.png

目录结构及配置

创建好后,目录结构如下图

目录结构.png

从整体来看,小程序遵循的是MVC模式,小程序分为视图层View和逻辑层AppService的两层框架,并在视图层和逻辑层之间提供数据传输和事件系统。

  • app.js,它主要是放置一些程序的全局变量、属性或方法以及执行程序的一些生命周期,比如onLaunch(),onShow(),onHide()。当程序一启动的时候就会执行onLaunch()方法,当页面显示的时候执行 onShow()方法,当界面隐藏或转换到后台的时候执行onHide()方法。
  • app.jsonpages配置所有页面的路径,在window对象里面配置window的样式,在tabBar设置底部tab的样式,在networkTimeOut对象里面配置一些全局超时变量,通过debug赋值是否开启调试模式。
  • app.wxss 相当于css文件,全局样式,在所有页面都可以调用。
  • index.js 第一个页面的逻辑层,包括一些事件处理函数,还有一个onLoad()方法,当页面加载完后会执行。
  • index.json 可以覆盖一些窗口navigationBar的一些属性。
  • index.wxml 页面的视图布局文件,相当于Androidxml布局。其中里面的view相当于div,其中bindtap属性指的是点击事件,然后对应的点击事件在index.js里面处理。
  • index.wxss 首页的一些样式,供index.wxml的根节点属性使用。

在创建一个页面的时候,其中xxx.jsxxx.wxml是必须的文件,其他的文件是非必须。

响应的数据绑定

根据上面创建的HelloWorld代码基础上,添加一个按钮,实现点击按钮改变data对象的属性motto属性值,从而实现简单的响应数据绑定布局效果。
首先在首页的视图文件 index.wxml通过button组件添加一个按钮,代码如下:

<!--index.wxml-->
...
  <view class="usermotto">
    <text class="user-motto">{{motto}}</text>
    <button bindtap="bindMottoTap" class="userMottoBtn">点击</button>
  </view>
</view>

index.wxss里面添加一点点样式

/**index.wxss**/
...
.usermotto {
  margin-top: 200px;
  text-align: center;
}
.userMottoBtn{
  width: 200px;
  height: 50px;
  margin-top: 10px;
}

接下来在index.js里面添加点击事件

//index.js
...
  bindMottoTap: function() {
    this.setData({
      motto:"Hello 小程序"
    })
  },
  ...
})

然后编译后,我们点击可以实现下面的效果

weLite.gif

模块化

从上面项目中的logs页面,就可以看到一个简单的模块化代码使用,它可以很好的处理代码公用部分,从而提高代码的复用性

//logs.js
var util = require('../../utils/util.js')

从上面的代码可以看出,模块化是通过require这个关键词使用的,然后传入一个相对路径参数,从而获取模块化代码的对象,通过获取的这个对象调用相关的方法和属性。
比如调用util.jsformatNumber()方法,就可以在log.js里面直接调用

util.formatTime(new Date(log))

其中,util.js方法可以在任何页面里面使用,从而实现部分代码的模块化

创建一个简单的登录页面

通过Pages创建一个新页面login,结构如下图

登录.png

1.在login.json修改下naigationBar的标题

{
  "navigationBarTitleText": "登录"
}

2.在login.wxml里面创建视图样式

<!--login.wxml-->
<view class="container">
  <view class="section">
    <input id="username" type="text" placeholder="请输入用户名" maxlength="10" bindinput="bindUserName" focus="true"/>
  </view>
  <view class="section">
    <input id="password" type="password" placeholder="请输入密码" bindinput="bindPassWord" focus="false"/>
  </view>
  <button type="button" class="btn" bindtap="loginBtn">登录</button>
</view>

3.在login.wxss里面添加一些css样式

/* login.wxss */
.section{
  height: 25px;
  width: 50%;
  background-color: #F2F2F2;
  margin: 10px;
  padding: 10px;
  text-align: left
}
.btn{
  width: 25%;
  height: 45px;
  margin: 10px;
  text-align: center;
}

4.在login.js处理响应的事件

// login.js
Page({
  data: {
    username:'',
    password:''
  },
  bindUserName: function(e) {
    this.setData({
      username:e.detail.value
    });
  },
  bindPassWord: function(e) {
    this.setData({
      password:e.detail.value
    });
  },
  loginBtn: function() {
    if(this.data.username=="goach"&&this.data.password=="123456"){
      wx.navigateTo({
        url: '../index/index',
      })
    }else{
      wx.showModal({
        title: "用户名或密码不正确",
        showCancel:false,
        duration:2000
      });
    }
  },
})

4.最后再app.jsonpages第一行配置login页面,把login页面做为首页

{
  "pages":[
    "pages/login/login",
  ...
  ],
...
}

在上面代码中,通过 input组件实现两个输入框,然后添加了一个button,通过获取到两个输入框的输入值来简单验证用户名和密码是否正确,如果正确则通过wx.navigateTo()来跳转到index页面,如果不正确,则通过wx.showModel显示提示框。
最后显示的效果如下:

login.gif

实现首页Tab化

很多小程序底部都会有tab效果,如果样式比较简单,直接用小程序为我们提供的tabBar即可,实现这种效果只需要在app.json里面添加tabBar`的代码

{
  ...
  "tabBar": {
    "color": "#000000",
    "selectedColor": "red",
    "borderStyle": "white",
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页",
      "iconPath":"pages/images/b_index_press_night.png",
      "selectedIconPath":"pages/images/b_index_press.png"
    },
    {
      "pagePath": "pages/logs/logs",
      "text": "日志",
      "iconPath": "pages/images/b_log_press_night.png",
      "selectedIconPath": "pages/images/b_log_press.png"
    }],
    "position": 0
  }
}

其中注意的一点就是,如果当前页面带有tab,那么从一个页面跳转到当前页面就不能使用wx.navigateTo()来进行跳转了,应该使用wx.switchTab()来跳转,比如上面的login页面跳转到index页面,就得把代码改成

  wx.switchTab({
        url: '../index/index',
      })

最后实现的效果如下

tab.gif

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微信小程序是一种基于微信平台的应用的开发模式,可以快速的开发出符合用户需求的小程序。在小程序的开发中,组件是一个非常重要的概念,通过组件可以实现复用性和模块化编程思想。 组件应用是小程序开发的基础。通过组件可以将某一模块化并封装起来,使得组件可以在不同的页面间得到复用,大大提升了开发效率并减少了代码冗余。微信小程序提供了丰富的自带组件,包括文本、图片、按钮、输入框等等,开发者也可以自己开发组件来满足自己的需求。实际开发中,通过组件可以快速搭建页面框架和业务逻辑。 Demo是一个演示小程序的示例程序。在小程序的实际开发过程中,一个好的Demo非常重要。通过Demo,开发人员可以更深入的了解小程序的开发流程、组件的应用和实际的业务开发等等。在Demo中,通常会包括小程序的一些基础操作,如页面跳转、数据绑定、组件的使用等。而在实际开发中,Demo还会包括一些复杂的业务场景,如支付、登录、数据列表展示等等。Demo不仅为开发者提供了学习和实践的机会,也方便了使用者了解该小程序的功能和特点。 总之,微信小程序组件的应用和Demo的开发都是小程序开发过程中非常重要的两个部分。良好的组件应用和精心设计的Demo,可以在极短的时间内实现小程序开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值