C#程序员入门学习微信小程序的笔记


Posted in Javascript onMarch 05, 2019

前言

因为工作需要,最近学习了一下微信小程序,在此分享一下大概的流程。

强烈建议大家先去看微信小程序简易教程:点我进入

起步

客户端打开小程序的时候,就将代码包下载到本地进行解析,首先找到了根目录的 app.json ,知道了小程序的所有页面。

C#程序员入门学习微信小程序的笔记

在这个Index页面就是我们的首页,客户端在启动的时候,将首页的代码装载进来,通过微信的机制,就渲染出来了页面。

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

小程序在启动的时候,首先通过 App() 定义的 App() 实例的 onLaunch  方法,这个方法是各个页面共享的,当然还有更多的回调事件。

Page({
 data: {
 text: 'init data',
 array: [{msg: '1'}, {msg: '2'}]
 }
})

在页面加载时,data这个属性会提供给页面使用,会以Json的形式返回给前端,然后我们可以试着把这个值渲染在页面上。

<view>{{text}}</view>
<view>{{array[0].msg}}</view>

 小程序页面中还有很多的方法,像 onReady() 当页面加载妥当,可以进行交互的时候触发,还有小程序被切入后台的 OnHide() 事件。当然这些都是应用级的事件,还有一些和用户亲密交互的事件,官方称这种叫做页面事件处理函数。

像最操蛋的是微信小程序没有下拉事件 onPullDownRefresh() ,这个东西自己搞,我也是福气了,不过也对,这东西解耦,就当我刚才说的是放屁。。。例如以下代码。

在.json文件里设置 "enablePullDownRefresh": true,用于开启页面下拉加载效果,可以当前页设置也可以全局设置;

{//当前页
 "enablePullDownRefresh": true //当前页
 "backgroundTextStyle": "dark" //顶部显示颜色为深色的三个点
}
"window": { //全局
 "enablePullDownRefresh": true //全局
 "backgroundTextStyle": "dark" //顶部显示颜色为白色的三个点
 }

然后在某个页面的js中,去写一个下拉事件,然后例如这样的。

onPullDownRefresh:function(){
 var that = this;
 that.setData({
  currentTab: 0 //当前页的一些初始数据,视业务需求而定
 })

wx.startPullDownRefresh();
this.onLoad(); //重新加载onLoad()
 console.log('i am refreshing....');
 }

经过微信开发者的调试工具,我们可以轻松看到log的记录,在那个setData里面是初始的数据。

C#程序员入门学习微信小程序的笔记

最后,在onload事件中停止刷新。

onLoad: function (options) {
 wx.stopPullDownRefresh() //刷新完成后停止下拉刷新动效
 },

你可以通过一个按钮来进行刷新,bindtap可以直接请求逻辑层。

下面就要说一说事件了,事件是视图层到逻辑层的通讯方式。事件是绑定到dom上的,当触发的时候就回去执行响应的逻辑层。这些都是最基本的。

但是其中的事件分为 bindtap 和 catchtap 。那这两个有什么区别呢?一个是冒泡 一个是不冒泡。那这冒不冒泡又是个什么鬼意思呢?

<view id="outer" bindtap="handleTap1">
 outer view
 <view id="middle" catchtap="handleTap2">
 middle view
 <view id="inner" bindtap="handleTap3">
  inner view
 </view>
 </view>
</view>

经过测试,点击inner view 会触发 inner view和 middle view的事件,而点击 middler view 则只会触发它的事件,因为再放上走被outer view给挡住了 。

此处为了调试,请在app.json中的pages中添加页面,然后可以通过以下代码进行跳转。

wx.navigateTo({
  url: '../demo/demo',
 })

在小程序中,也支持本地存储。 例如api  wx.setStorage() 和wx. setStorageSync() 。

还有就是它和Vue一样不支持jquery,也就是没法装逼了。另外我关注的自适应。微信小程序支持rpx;可以达到自适应。这我开心坏了。

为了安全性,它不知道跳转外网。这个可能需要申请(money,你懂的。)

问题:关于无法小白我没办法获取input里面的值,因为没办法操作dom,这个是有原因,因为微信小程序无法确定dom,因为是有中间的编译,这和vue有点差距。可以这么操作。

解决:微信对input的组件,提供了多个事件,看来只能通过这些事件去实现单个input的值的获取。

根据这些表单事件我们可以去获取里面的值然后去改data里面的值,也就达到这效果。

看样子,小程序比Vue还要优雅。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
Apr 12 Javascript
增强的 JavaScript 的 trim 函数的代码
Aug 13 Javascript
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
Aug 05 Javascript
js计算页面刷新的次数
Jul 20 Javascript
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
Sep 29 Javascript
javascript模拟订火车票和退票示例
Apr 24 Javascript
jQuery焦点图切换简易插件制作过程全纪录
Aug 27 Javascript
显示今天的日期js代码(阳历和农历)
Sep 30 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
关于Vue项目跨平台运行问题的解决方法
Sep 18 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
Nov 24 Javascript
JavaScript函数的4种调用方法实例分析
Mar 05 #Javascript
微信小程序保存多张图片的实现方法
Mar 05 #Javascript
JS添加或删除HTML dom元素的方法实例分析
Mar 05 #Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
Mar 05 #Javascript
es6数据变更同步到视图层的方法
Mar 04 #Javascript
使用webpack构建应用的方法步骤
Mar 04 #Javascript
详解element-ui中form验证杂记
Mar 04 #Javascript
You might like
php下统计用户在线时间的一种尝试
2010/08/26 PHP
php中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
Ionic快速安装教程
2016/06/03 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
python爬虫之百度API调用方法
2017/06/11 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
个人收入证明范本
2014/09/18 职场文书
工作检讨书怎么写
2015/01/23 职场文书
胡桃夹子观后感
2015/06/11 职场文书
学生病假条怎么写
2015/08/17 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
小学四年级班务总结该怎么写?
2019/08/16 职场文书