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 相关文章推荐
Jquery提交表单 Form.js官方插件介绍
Mar 01 Javascript
js onclick事件传参讲解
Nov 06 Javascript
js返回前一页刷新本页重载页面
Jul 29 Javascript
jquery实现图片放大镜功能
Nov 23 Javascript
JS中传递参数的几种不同方法比较
Jan 20 Javascript
JavaScript实现审核流程状态的动态显示进度条
Mar 15 Javascript
react-router browserHistory刷新页面404问题解决方法
Dec 29 Javascript
Vue项目组件化工程开发实践方案
Jan 09 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
浅析前端路由简介以及vue-router实现原理
Jun 01 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
Oct 19 Javascript
layui监听单元格编辑前后交互的例子
Sep 16 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
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
js将json格式内容转换成对象的方法
2013/11/01 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
Django添加feeds功能的示例
2018/08/07 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
工作会议主持词
2014/03/17 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
爱护公物标语
2014/06/24 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
七一建党节慰问信
2015/02/14 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android