美文网首页小黑说事小程序攀登
小程序初体验:手把手教你写出第一个小程序(一)

小程序初体验:手把手教你写出第一个小程序(一)

作者: LLZZCHEN | 来源:发表于2017-01-10 11:01 被阅读45442次

    本文笔者将根据quick start中的范例代码,带大家简单地剖析一下小程序的运行方式,并介绍小程序开发中一些通用的特性,带着大家一步步写出自己的小程序。

    适用对象:前端初学者,对小程序开发感兴趣者

    tips:由于笔者也是一位前端菜鸟,所以尽量用简单直白的语言为大家讲解,如有说的不到位的地方,还望多多指教。

    吊了我们一年胃口的小程序终于和大家见面了。经过了一天的发酵,小程序已经成为了今天的超级头条(汪汪哭晕在厕所)。

    经历了一天媒体对小程序的狂轰滥炸,相信大家对于小程序一定充满了好奇。与其跟风转发朋友圈,不如试着自己动手,写一个自己的小程序吧。

    食材:

    小程序模拟器:微信小程序官方模拟器

    官方提供的下载页面

    食材非常的简单,只需要下载官方提供的模拟器(根据自己电脑的版本下载),下载安装完毕以后所有的环境就搭建完成了,不需要再配置其他依赖,不得不说大厂考虑的还是比较周全的。

    初始化配置

    下载完毕后启动文件,会出现一个二维码,用任意的微信账号扫码登录即可。

    扫码登录界面。

    登录成功后选择第一项“本地小程序项目。

    登录成功后的界面 接着点击“添加项目”。

    接下来会进入初始化界面。

    初始化界面

    第一项AppID可以暂时选择不填(部分API受限但并不影响我们本次试验),如果你和笔者一样是个穷学生或者是个人开发者的话,当然如果有公测账号可以选择输入自己的AppID。

    项目名称这里我们填:FirstApp, 项目目录选择一个常用的目录即可,记得勾选“在当前目录中创建quick start 项目”(选中后系统会为我们生成一个简单的页面,否则什么也不生成)。接着点击“添加项目”。

    接下来就进入到小程序模拟器的主界面:

    主界面

    界面左边是当前正在运行�的程序的预览视图,每次我们编辑完代码按 ctrl/ command + s 保存,预览视图就会自动刷新至最新状态。

    中间是当前工作的项目目录,这里我们会发现模拟器已经自动帮我们生成了一些初始化的代码。待会我们再来一一介绍这些文件分别是用来干什么的。

    右边就是我们的代码编辑区,这里就是我们敲代码的地方啦。

    快速上手

    在深入讲解之前我们先来敲一下代码

    点击项目目录中的 index.wxml,在第9行输入如下代码:

    编辑完后保存,这时你会看到右边预览界面发生了变化。

    我们发现原有的Hello World下面出现了另外一个Hello World,而且试着用鼠标点击一下,就会发现似乎是可以编辑的。这是因为我们添加了<input />标签,它可以监听用户键盘的输入。

    更多详情请看 input | WeChat

    接下来我们打开 index.js,输入如下代码(注意大小写及用于分隔属性的逗号):

    保存以后试着在刚才新添加的输入框中编辑一下,登登登登!!

    可以看到文本内容就会随着我们输入框内容的改变而改变啦!


    理论时间(不感冒的可选择跳过)

    熟悉VM框架的人看到这里可能会很有亲切感,没错,微信团队吸取了它们的一些特性,只不过这里的用法更简洁。

    只要你在每个页面对应的Page对象的data属性中定义了新的变量,那么页面的wxml就可以用Mustache 语法(双大括号)全局地读取到你定义在data属性中的变量。

    简单地说,就是只要你在data设置了一个新属性:

    Page({

        data: {

              新属性 :新属性的值

        }

    })

    在 .wxml中就可这样调用它:

    <view>{{ 新属性 }}</view>        <-- 页面中会显示 “ 新属性的值 ” /-->

    想要修改data中的值官方推荐使用 setData 方法,使用 this.data.变量名 可在 .js 文件中获取data中的数据。范例如下:

    var newMotto = this.data.motto + ' ! '

    this.setData({

         motto:newMotto

    })

    想了解更多请查阅 数据绑定 | WeChat

    注意看index.wxml中我们在<input />标签中加入了 bindinput属性,这是一个事件绑定的使用方式。意思就是当我们在这个输入框进行任意输入时,都会触发bindinput属性对应的函数或代码块,在这里我们让其触发 inputMotto() 函数。

    inputMotto

    可以看到这个inputMotto属性被赋值了一个匿名函数,这个函数接收一个事件对象e(可以取任意名字),这是该函数被回调时被传入的。里面包含了触发及被触发对象的一些信息,其中就有我们需要的输入框中的值。它被存储在 e.detail.value 中。

    打印在 console 的 e.detail 的内容如下:

    可以看到 cursor 为当前输入框中的文本长度,value 为文本值。


    接下来教大家使用微信提供的API(接口)。

    在index.wxml中输入:


    保存后查看页面:

    可以看到我们为页面添加了一个按钮<button>标签及图片<image>标签,其中按钮绑定了点击事件chooseImage,也就是说当我们点击按钮是就会触发chooseImage方法。

    而图片则用 tempFilePathSet 作为src资源路径,style属性是为图片设置的样式。因为当前src为空,故图片没有显示。

    在index.js中输入:

    可以看到我们首先在data中定义了 tempFilePathSet 属性(第8行),接着定义了 chooseImage 方法。

    在第37行,我们调用了小程序为我们设置的全局 wx 对象,这个对象包含了所有微信暴露出来的接口。

    也就是说,如果我想使用微信内置的一些功能,比如获取用户基本信息,读取图片,获取位置,微信支付等,我们只能通过调用 wx 对象中的方法来实现。

    在这里我们使用了 wx 对象中的 chooseImage 方法来读取用户本地图片。success 方法将会在获取到本地图片路径成功后被回调,并被传入 res 参数,这个参数包含了用户所选取的图片的本地路径。

    代码编辑完毕后保存,点击之前定义的 chooseImage 按钮,这时会发现出现一个弹出框(在手机端应为微信读取界面),选择一张图片后,登登登登~~

    好了,看到这里你应该对于小程序有了基本的了解。虽然我们只是做了一些很简单的功能,但是小程序开发中所需要的大部分内容其实都已经涉及到了。接下来请跟我回溯一下:

    1. 我们首先在 page 中定义好界面中所需要的数据及方法。

    2. 接着在页面中添加了组件,并为其绑定了事件。

    3. 然后调用了微信的API,并通过API获取我们需要的数据或操作。

    虽然实际开发中还有些细枝末节的东西需要我们去考虑,但是总体而言都离不开这三个步骤。

    赶紧来试试吧

    下集预告:想知道小程序究竟是怎么运行起来的?就让我们在下一章节继续深入地剖析一下小程序的内部运行机制吧。

    未完待续


    相关文章

      网友评论

      • 35a1c1e006d1:快、继续更新哈
      • 宝金_105c:这两天刚把小程序文档看完打算自己做一个案例及后台搭建
      • Faction_fe48:西安朗科电子商务有限公司 可以做各种版本小程序 价格在1500-10000之间 有意了可以加vx
        :1048631598
      • 1865f5021610:你好,我们很喜欢你的文章,希望获得转载授权,转载后我们会标注来源和作者。
        智时代智生活(http://www.zhishidai.net),微信开放平台官方认证第三方合作伙伴,提供全行业微信小程序解决方案。
      • 苹果红妹:tempFilePaths is not defined;at pages/index/index chooseImage function;at api chooseImage success callback function
        ReferenceError: tempFilePaths is not defined
        at Function.success (http://127.0.0.1:9973/appservice/pages/index/index.js:72:28)
        at Object.success (http://127.0.0.1:9973/appservice/__dev__/WAService.js:3:10625)
        at Function.<anonymous> (http://127.0.0.1:9973/appservice/__dev__/WAService.js:3:30510)
        at r.function.setTimeout (http://127.0.0.1:9973/appservice/appservice:1088:6623)
        at

        按照要求调试了,但是有点报报错
        阿Q说代码:你是不是少写了代码啊?tempFilePaths未定义啊
      • 游虫先生:你好,我是极客小程序,腾讯国内首批的优质第三方开发平台,提供完善的行业小程序解决方案。拒绝提交代码至小程序,一键授权,自动更新!我们很喜欢你的文章,希望获得转载授权,转载后我们会标注来源和作者。
      • 雨林中的红叶58:好友上午好!
      • BESTU张正雨:刚开发了一个小程序,名字叫‘你的平行宇宙’是一款可以打开脑洞的小程序,在宇宙中的另一个星球,存在着另外一个你,他/她在做什么,他/她过的快乐吗?如果你对另外一个世界的自己充满了兴趣,那么就打开‘你的平行宇宙’小程序看一看,让另一个自己在宇宙的另一端,与自己产生心灵的碰撞,摩擦出爱恨交织的火花。
        fc392843d3fa:微企达(www.vqida.com),免费制作小程序,全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
      • 运营的土豆:我也想打个广告:搜索程序推广之家
      • 独不语:小程序是未来的大方向,支持
      • da07498e7de7:您好,我们这边是微信官方认证第三方小程序开发商上海everon(http://www.yangchengtech.com/xcx/)。team核心成员均为业内10年+经验,曾服务过精锐集团。我们很喜欢你的文章,希望获得转载授权,转载后我们会标注来源和作者,谢谢!
        da07498e7de7:赞简书的高权重:blush: :+1: :+1:
        da07498e7de7:@探挖 恩,是的。:smile:
        探挖:@everon 展示宣传的是2000吗?
      • 看看事是什么样儿:太阳系地球小程序商城共享服务,注册自动开通店铺管理后台和小程序API
        太阳系地球小程序共享服务 http://paylive.cn
      • 669aa5fb5522:晓商小程序……
        fc392843d3fa:微企达(www.vqida.com 电脑访问),全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
        40924d481dbf:晓商小程序:商城、拼团、驾校、企业展示、外卖、智店!
        40924d481dbf:谢谢,关注晓商,关注大生意!小商家,大生意!
      • 40924d481dbf:你好,我是晓商+小程序(www.xsplus.cn),国内首批小程序第三方平台,提供完善的行业小程序解决方案。无需提交代码至小程序,一键授权,自动更新,自定义装修!我们很喜欢你的文章,希望获得转载授权,转载后我们会标注来源和作者。
        714024a1f576:简书的权重好高!!!!!
        714024a1f576:小程序导航 www.xsxcx.cn
        714024a1f576:小程序 大趋势 小商家 大生意!智慧门店靠小程序了!
      • 微料小程序开发:微聊小程序平台 可以扫码一键接入 更方便
        微料小程序开发:www.weiliao.net.cn
      • 63d103e6dc32:学习了。www.dxsme.cn
      • 是小岸:厉害了,第一篇文章就有这么高的阅读量!:+1: 确实的干货
      • tower1229:推荐一个小程序开发上手指南:http://refined-x.com/2017/07/20/小程序上手指南/
      • 55cb3c9b2353:你好,请问一下小程序怎么老是通过不了呢?
      • 8bc1aa58be5f:写得通俗易懂,赞
        fc392843d3fa:微企达(www.vqida.com),免费制作小程序,全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
      • ae80d91aa1df:很不错,支持,下一篇在哪看呀?
        fc392843d3fa:微企达(www.vqida.com),免费制作小程序,全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
      • 手机开店用微店:856632786876786
        fc392843d3fa:微企达(www.vqida.com),免费制作小程序,全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
      • ca64e8fee9b1:朋友,请继续。
        fc392843d3fa:微企达(www.vqida.com),免费制作小程序,全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
      • ca64e8fee9b1:怎么没有下方了:flushed:
        fc392843d3fa:微企达(www.vqida.com),免费制作小程序,全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
      • 48fa9516153f:你好,我是青否小程序,国内首家小程序平台,提供完善的行业小程序解决方案。拒绝提交代码至小程序,一键授权,自动更新!我们很喜欢你的文章,希望获得转载授权,转载后我们会标注来源和作者。
        63d103e6dc32:学习了。www.dxsme.cn
        A5wemall:确实挺详细的
        48fa9516153f:www.qingful.com
      • ca64e8fee9b1:一个字一个字的砸上去,居然做到了:grin: 我是45岁的高龄小白:v:
        fc392843d3fa:微企达(www.vqida.com),免费制作小程序,全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
      • baf873ba118f:你好,我们是第九程序(9.cn)。我们很喜欢你的文章,希望获得转载授权,转载后我们会标注来源和作者。同时你的文章将会在第九程序官网以及微信公众号(djxcx9)发布。
        fc392843d3fa:微企达(www.vqida.com),免费制作小程序,全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
      • 我从湖北来加油湖北:wei wei wei
        fc392843d3fa:微企达(www.vqida.com),免费制作小程序,全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
      • 知晓程序:你好!我们是爱范儿旗下专注于小程序生态的公众号知晓程序(微信号 zxcx0101)。我们很赞赏你的文章,希望能获得转载授权。授权后,你的文章将会在知晓程序社区(minapp.com)、爱范儿、AppSo 等渠道发布,我们会注明来源和作者姓名。
        fc392843d3fa:微企达(www.vqida.com 电脑访问),全程可视化自助diy微信小程序,只要简单拖拽,就可以像搭积木一样,做出一个高质量的小程序
        知晓程序:@LLZZCHEN 感谢~~~
        LLZZCHEN:@知晓程序 转吧,新人也没啥讲究

      本文标题:小程序初体验:手把手教你写出第一个小程序(一)

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