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 相关文章推荐
JS实现多物体缓冲运动实例代码
Nov 29 Javascript
jquery链式操作的正确使用方法
Jan 06 Javascript
js实现当前输入框高亮显示的方法
Aug 19 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
May 23 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
Dec 01 Javascript
微信小程序 支付简单实例及注意事项
Jan 06 Javascript
Vue组件中slot的用法
Jan 30 Javascript
Javascript中prototype与__proto__的关系详解
Mar 11 Javascript
qrcode生成二维码微信长按无法识别问题的解决
Apr 04 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
May 24 Javascript
angular inputNumber指令输入框只能输入数字的实现
Dec 03 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 数组教程 定义数组
2009/10/23 PHP
解析如何在PHP下载文件名中解决乱码的问题
2013/06/20 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
IE8 原生JSON支持
2009/04/13 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
vuex入门最详细整理
2020/03/04 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
2020/11/17 Vue.js
Python多线程编程(一):threading模块综述
2015/04/05 Python
Python中的各种装饰器详解
2015/04/11 Python
基于python socketserver框架全面解析
2017/09/21 Python
详解Django 时间与时区设置问题
2019/07/23 Python
Python获取时间戳代码实例
2019/09/24 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
自习课吵闹检讨书范文
2014/09/26 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
小学生暑假安全公约
2015/07/14 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
Redis特殊数据类型bitmap位图
2022/06/01 Redis