一、基础常识

  • app.json   全局json
  • app.js   全局js
  • app.wxss   全局样式
  • project.config.json   公共的配置
  • sitemap.json   界面索引,默认全部索引

二、常用的视图容器类组件

1、view

  • 普通视图区域·
  • 类似于HTML中的div,是一个块级元素
  • 常用来实现页面的布局效果

2、scroll-view

  • 可滚动的视图区域
  • 常用来实现滚动列表效果

3、swiper和swiper-item

  • 轮播图容器组件和轮播图item组件

4、通过text 组件的selectable属性,实现长按选中文本内容的效果:

<text selectable>XXXXXXXXXXXX</text>
  • 渲染字符串
<rich-text nodes="<h1 style='color: red; '>标题</h1>"></rich-text>

5、button

<button type="primary" size="mini">点击登录</button>
<button type="warn" size="mini">警告</button>
<button type="primary" size="mini" plain>镂空样式</button>

6、img

  • mode属性用来指定图片的裁剪和缩放模式

三、API

1、事件监听API

  • 特点:以on开头,用来监听某些事件的触发
  • 举例:wx.onWindowResize(function callback)监听窗口尺寸变化的事件

2、同步API

  • 特点1∶以Sync结尾的API都是同步API
  • 特点2∶同步API的执行结果,可以通过函数返回值直接获取,如果执行出错会抛出异常举例:wx.setStorageSync('key' , 'value')向本地存储中写入内容

3、异步API

  • 特点:类似于jQuery 中的$.ajax(options)函数,需要通过success、fail、complete接收调用的结果举例: wx.request()发起网络数据请求,通过success回调函数接收数据

四、模板与配置

(一)、数据绑定

1、基本原则

  • 在data中定义数据、在WXML中使用数据

2、绑定内容

Page({data: i//字符串类型的数据info: 'init data',//数组类型的数据msglist:[{msg: 'hello'},{msg: 'world')])
})
  • Mustache语法(双大括号)     插值表达式
<view>{{要绑定的数据名称}}</view>

Mustache语法的主要应用场景如下︰

  • 绑定内容
  • 绑定属性
  • 运算(三元运算、算术运算等)

3、绑定属性

Page({data:{imgsrc: 'http: / /ww.itheima. com/images/logo.png'}
})
<image src="{{imgSrc)}"></image>

4、运算

Page({data:{randomNum: Math.random() * 10 //生成 10 以内的随机数}
})
<view>{{randomNumber >= 5 ?'随机数字大于或等于5'︰'随机数字小于5'}}</view>

(二)、事件绑定

1、定义

事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。

2、常用事件

类型 绑定方式 事件描述
tap bindtap 或 bind:tap 手指触摸后马上离开,类似于HTML中的click事件
input bindinput 或 bind:input 文本框的输入事件
change bindchange 或 bind:change 状态改变时触发

3、事件对象的属性列表

当事件回调触发的时候,会收到一个事件对象event,它的详细属性如下表所示:

属性 类型 说明
type String 事件类型
timeStamp lnteger 页面打开到触发事件所经过的毫秒数
target object 触发事件的组件的一些属性值集合
currentTarget object 当前组件的一些属性值集合
detail object 额外的信息
touches Array 触摸事件,当前停留在屏幕中的触摸点信息的数组
changedTouches Array 触摸事件,当前变化的触摸点信息的数组

4、target和currentTarget 的区别

target是触发该事件的源头组件,而 currentTarget则是当前事件所绑定的组件。举例如下:

<view class="outer-view" bindtap="outerHandler">
<button type="primary">按钮</button>
</view>

点击内部的按钮时,点击事件以冒泡的方式向外扩散,也会触发外层view的 tap事件处理函数。

  • e.target指向的是触发事件的源头组件,因此,e.target是内部的按钮组件
  • e.currentTarget指向的是当前正在触发事件的那个组件,因此,e.currentTarget是当前的view组件

5、bindtap的语法格式

在小程序中,不存在HTML中的onclick鼠标点击事件,而是通过tap事件来响应用户的触摸行为。

(1)通过bindtap,可以为组件绑定tap触摸事件,语法如下:

<button type=""primary" bindtap=""btnTapHandler">按钮</button>

(2)在页面的.js文件中定义对应的事件处理函数,事件参数通过形参event(一般简写成e)来接收:

Page({btnTapHandler(e){ //按钮的 tap事件处理函数console.log(e)  //事件参数对象e}
})

(三)、事件传参与数据同步

1、在事件处理函数中为data中的数据赋值

通过调用this.setData(dataObject)方法,可以给页面data中的数据重新赋值,示例如下:

//页面的.js 文件
Page({data:{count: 0},//修改count 的值changeCount() {this.setData({count: this.data.count + 1})}
})

2、事件传参

注意:小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。

可以为组件提供data-*自定义属性传参,其中*代表的是参数的名字,示例代码如下:

<button bindtap="btnHandler" data-info="{{2}}">事件传参</button>

在事件处理函数中,通过event.target.dataset.参数名即可获取到具体参数的值:

btnHandler(event){
// dataset是一个对象,包含了所有通过data-*传递过来的参数项
console.log(event.target.dataset)
//通过dataset可以访问到具体参数的值
console.log(event.target. dataset.info)
}

3、文本框和data之间的数据同步

(四)、渲染

1、条件渲染

<view wx:if="{{icondition}}"> True </view>
<view wx:if="{{type ===1}}">男</view>
<view wx:elif="{{type === 2}}">女</view>
<view wx:else>保密</view>

如果要一次性控制多个组件的展示与隐藏,可以使用一个<block></block>标签将多个组件包装起来,并在<block>标签上使用wx:if 控制属性,示例如下:

<block wx:if="{{true}}"><view> view1 </view><view> view2 </view>
</block>
  • hidden
<view hidden="{{ condition }}">条件为true隐藏,条件为 false 显示</view>

wx:if 与hidden的对比:

  • 运行方式不同

wx:if 以动态创建和移除元素的方式,控制元素的展示与隐藏
hidden 以切换样式的方式(display: none/block;),控制元素的显示与隐藏

  • 使用建议
    频繁切换时,建议使用hidden
    控制条件复杂时,建议使用wx:if 搭配 wx:elif、wx:else进行展示与隐藏的切换

2、列表渲染

通过wx:for可以根据指定的数组,循环渲染重复的组件结构,语法示例如下:

<view wx : for=" {{array}}">索引是: {{index}}当前项是: {{item}}
</view>

手动指定索引和当前项的变量名*

使用wx:for-index 可以指定当前循环项的索引的变量名

使用wx:for-item可以指定当前项的变量名

<view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">索引是: {{idx}}当前项是:{{itemName}}
</view>

wx:key的使用

类似于Vue列表渲染中的:key,小程序在实现列表渲染时,也建议为渲染出来的列表项指定唯一的 key值,从而提高渲染的效率,示例代码如下:

data: {
userList: [{ id: 1,name: '小红’},{ id: 2,name: '小黄'},{ id: 3,name: '小白’}]
}//wxml结构
<view wx:for="{{userList}}" wx:key="id">{{item.name}}</view>

五、补充:协同工作与发布

(一)、协同工作

1、权限管理

2、人员组成

项目管理者、产品组(提需求)、设计组(出设计方案)、开发组(代码开发)、测试组(项目测试)

(二)、发布

微信小程序开发整理-mp1相关推荐

  1. 微信小程序开发整理-mp3

    一.生命周期 1.定义 生命周期(Life Cycle)是指一个对象从创建>运行→>销毁的整个阶段,强调的是一个时间段. 2.分类 应用生命周期(app.js):特指小程序从启动-> ...

  2. 微信小程序开发编辑器功能常用快捷键整理

    微信小程序开发编辑器功能常用快捷键整理 常用快捷键 Ctrl + L(选中当前行) Ctrl + Shift + L(选中所有匹配) Ctrl + D(选中匹配,按一次多选一个) Ctrl + U(回 ...

  3. 微信小程序开发优秀教程及文章合集第一期

    2019独角兽企业重金招聘Python工程师标准>>> 我会不定期的选取一些优质教程,整理成辑,以便大家集中阅读: 新手向!微信小程序开发手记系列: 微信小程序开发手记<一&g ...

  4. 五大微信小程序开发IDE深度评测

    微信小程序已经内测有一段时间了,笔者本着好奇加学习的心态写了几个小demo,虽然在MINA框架上并没有遇到太多的坑,但官方开发工具实在不敢恭维. api提示不全,要一个个查api啊,写代码超级慢啊 很 ...

  5. ui测试怎么做?依据文档有哪些_微信小程序开发流程有哪些?各个环节注意事项...

    微信小程序开发流程有哪些?各个环节注意事项是什么?微信小程序开发有哪些注意事项,开发流程是怎样的?下面就一起来看看吧. 1.微信小程序开发之注册小程序 在开发小程序之前,首先就是要注册一个小程序.不过 ...

  6. 微信小程token_微信小程序开发之登录换取token

    本文将带你了解微信小程序开发之登录换取token,希望本文对大家学微信有所帮助 前言:这次主要是介绍些业务逻辑,技术点倒是没有多少.不过在开发中,优秀的编程思路同样是非常值得学习的. 最近小程序可以说 ...

  7. 【微信小程序宝典】从零开始做微信小程序开发

    开发前必读简要 基于大量无效开发,无法上线的案例,所以开发前部分知识十分重要:| 链接 微信小程序个人注册简单步骤 打开mp.weixin.qq.com,点击右上角立即注册,进入小程序注册| 链接 微 ...

  8. 微信小程序存在的风险_微信小程序开发技术风险存在,如何规避是重点

    微信小程序开发技术风险存在,如何规避是重点 微信小程序自上线以来已经历经三年的时间,不断推陈出新,推展业务,如今已形成了一定规模和影响力,线上购物.在线点餐.预订服务.便捷出行.小游戏等多种多样的小程 ...

  9. 标星 2.7w+ 堪称史上最全的微信小程序开发资源汇总

    [公众号回复 "1024",免费领取程序员赚钱实操经验] 2017 年 1 月,微信小程序一夜成名. 微信小程序成名后,各大厂开始效仿,相继出现了支付宝.百度.今日头条.QQ.抖音 ...

最新文章

  1. Python入门篇-匿名函数
  2. 错误:No plugin found for prefix spring-boot in the current project and in the plugin groups
  3. spark出现bytes consumed error的问题
  4. Python.with.context-manager
  5. HNU 程序设计课 函数公式题
  6. Android学习二:Http操作
  7. AMD CPU驱动被曝漏洞,可使 KASLR崩溃、密码泄露
  8. 泰山JDK8新实现的一个字体斜体效果
  9. linux下物理内存不足,vm中linux物理内存不足解决方案
  10. Java不适合于作为主要编程教学语言 -- 孟岩
  11. java -cp 配置文件目录_java – 使用可执行JAR时指定Log4j2配置文件
  12. 龙格库塔(Runge-Kutta)法求四元数微分方程
  13. 安卓手机超频CPU(无修饰CPU控制)
  14. FPGA篮球计分设计
  15. 计算机辅助设计中常用的输入工具,cad怎么输入坐标点?cad三种常用坐标系的输入方法...
  16. 去掉数组中重复出现元素的算法
  17. vue修改网站名称和图标
  18. Android 9.0 Pie(派),9.0适配
  19. 获取Android签名打包keystore或者.jks文件的MD5
  20. 如何健壮你的后端服务?

热门文章

  1. linux中read函数读取文件夹内文件,linux下read函数
  2. 常用可以下载书的网站
  3. 美国打车应用Lyft公布IPO招股书 预计3月底挂牌交易
  4. 快速傅里叶变换(FFT)板子
  5. 【双评价】城镇建设指向的水资源评价
  6. PDF文件怎么复制页面,复制页面工具使用方法
  7. “打印机故障”,我的解决方案
  8. 硬件1--增益和放大倍数的关系
  9. 11万字政务云数字化平台建设方案(word)
  10. 区块链公有链、私有链和联盟链是什么?它们有什么特点?