微信小程序

目录

1、环境准备

        1.1 注册账号

        1.2 获取APPID

        1.3 开发工具

2、第一个微信小程序

        2.1 打开微信开发者工具

        2.2 创建项目

        2.3 成功

3、微信开发者工具介绍

4、小程序的结构目录

        4.1 小程序文件结构和传统web对比

        4.2 基本的项目目录

5、小程序配置文件

        5.1 全局配置 app.json

        5.1.1 tabbar

        5.2 页面配置 page.json

        5.3 sitemap配置- 了解即可

6. 模板语法

6.1.数据绑定

6.1.1. 普通写法

6.1.2. 组件属性

6.1.3. bool类型

6.2.运算

6.2.1.三元运算

6.2.2.算数运算

6.2.3.逻辑判断

6.2.4.字符串运算

6.3.列表渲染

6.3.1 wx:for

6.3.2 block

6.4.条件渲染

6.4.1. wx:if

6.4.2.hidden

7. 小程序事件的绑定

7.1. wxml

7.2. page

7.3. 特别注意

8.样式WXSS

8.1.尺寸单位

8.2.样式导入

8.3. 选择器

8.4. ⼩程序中使⽤less

9. 常⻅组件

9.1. view

9.2. text

 9.2.1. 代码

9.3. image

9.4. swiper

9.4.1. swiper

9.4.2. swiper-item

9.5. navigator

9.6. rich-text

9.6.1. nodes属性

9.7. button

9.8. icon

9.9. radio

9.10.checkbox

10.自定义组件

10.1. 创建⾃定义组件

 10.1.1. 声明组件

 10.1.2. 编辑组件

 10.1.3. 注册组件

10.2. 声明引⼊⾃定义组件

10.3. ⻚⾯中使⽤⾃定义组件

10.4. 其他属性

10.5. 定义段与⽰例⽅法

10.6. 组件-⾃定义组件传参

10.6.1. 过程

10.7. ⼩结

11. ⼩程序⽣命周期

11.1.应用生命周期

11.2.页面生命周期

11.3. ⻚⾯⽣命周期图解
​​​​​​​

1、环境准备

        1.1 注册账号

        建议使用全新的邮箱,没有注册过其他小程序或者公众号的

访问注册页面,耐心完成注册即可

        1.2 获取APPID

        由于后期调用小程序的接口等功能,需要索取开发者的小程序中的APPID,所以在注册成功后

可登录,然后获取APPID

登录界面,成功后可看到如下界面

然后复制你的APPID,悄悄的保存起来

 

         1.3 开发工具

点击下载地址

安装后,打开微信开发者工具

微信小程序自带开发者工具,集 开发 预览 调试 发布 于一身的 完整环境.

但是由于编码的体验不算好,因此建议使用 vs code + 微信开发者工具 来实现编码

vs code 负责敲代码, 微信开发者工具 负责预览

2、第一个微信小程序

        2.1 打开微信开发者工具

注意 第一次登录的时候 需要扫码登录

        2.2 创建项目

        2.3 成功

3、微信开发者工具介绍

详细的使用,可以查看官网

 

4、小程序的结构目录

        小程序框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生APP体验的服务.

        小程序框架提供了自己的视图层描述语言 WXML  和 WXSS, 以及JavaScript, 并在视图层与逻辑层提供了数据传输的事件系统,让开发者能够专注于数据和逻辑

        4.1 小程序文件结构和传统web对比

通过以上对比得出, 传统web 是三层结构,而 微信小程序 是四层结构,多了一层配置.json

        4.2 基本的项目目录

5、小程序配置文件

一个小程序应用程序会包括最基本的两种配置文件,一种是全局的 app.json 和 页面page.json 

注意: 配置文件中不能出现注释

         5.1 全局配置 app.json

app.json 是小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、、底部tab等,普通快速启动项目里边的app.json设置

{
  "pages":[ // 页面路径
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window":{ // 页面样式
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "Weixin",
    "navigationBarTextStyle":"black"
  }
}

字段的含义

        1.pages 字段-用于描述当前小程序所有页面路径,这是为了让微信客户端知道当前你的小程序定义在哪个目录

        2.window 字段-定义小程序所有页面的顶部背景颜色,文字颜色定义等

        3.完整的配置信息请参考app.json配置

         5.1.1 tabbar

         tabbar配置参考官网

         5.2 页面配置 page.json

        这里的 page.json 其实用来表示页面目录下的 page.json 这类和小程序页面相关的配置

        开发者可以独立定义每个页面的一些属性, 如顶部颜色、是否允许下拉刷新等等

        页面的配置只能设置 app.json 中部分 window 配置项的内容, 页面中配置项会覆盖 app.jsonwindow 中相同的配置项

        5.3 sitemap配置- 了解即可

        小程序根目录下的 sitemap.json 文件用于配置小程序及其页面是否允许被微信索引

6. 模板语法

WXML是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构

6.1.数据绑定

6.1.1. 普通写法

6.1.2. 组件属性

6.1.3. bool类型

6.2.运算

6.2.1.三元运算

6.2.2.算数运算

6.2.3.逻辑判断

6.2.4.字符串运算

6.3.列表渲染

6.3.1 wx:for

项的变量名称默认为 item wx:for-item 可以指定数组当前元素的变量名

下标变量名默认为: index wx:for-index 可以指定数组当前下标的变量名

wx:key 用来提高数组渲染的性能

wx:key 绑定的值 有如下选择

        1. string 类型, 表示循环项中的唯一属性 如

         2 保留字 *this, 它的意思是 item 本身, *this 代表的必须是 唯一的字符串和数组

6.3.2 block

渲染一个包含多节点的结构块block最终不会变成真正的dom元素

6.4.条件渲染

6.4.1. wx:if

在框架中, 使用 wx:if="{{condition}}" 来判断是否需要渲染该代码块:

 6.4.2.hidden

 类似 wx:if

频繁切换 用 hidden

不常使用 用 wx:if

7. 小程序事件的绑定

小程序中绑定事件,通过bind关键字来实现 如 bindtap  bindinput  bindchange  等

不同的组件支持不同的事件,具体看组件的说明即可

7.1. wxml

 7.2. page

7.3. 特别注意

1.绑定事件时不能带参数 不能带括号 以下为错误写法 

2.事件传值 通过标签自定义属性的方式 和 value 

​​​​​​​

3.事件触发时获取数据

 

 

8.样式WXSS

WXSS是一套样式语言,用于描述WXML的组件样式

CSS相比,WXSS扩展的特性有:

  ·    响应式长度单位 rpx

  ·    样式导入

8.1.尺寸单位

rpx:可以根据屏幕宽度进行自适应.规定屏幕宽为750rpx,如在iphone6上,屏幕宽度为375px,共有750个物理像素,则 750rpx = 375px = 750 物理像素,  1rpx = 0.5px = 1物理像素

建议:    开发微信小程序时设计师可以用iPhone6作为视觉稿的标准

使用步骤:

        1.确定设计稿宽度 pageWidth

        2.计算比例 750rpx = pageWidth px, 因此 1px = 750rpx/pageWidth

        3.在less文件中,只要把设计稿中的 px => 750/pageWidth rpx 即可

8.2.样式导入

wxss中直接就支持, 样式导入共能

也可以和less中的导入混用

使用@import 语句可以导入外联样式表, 只支持相对路径

⽰例代码:

 8.3. 选择器

特别需要注意的是 ⼩程序 不⽀持通配符 * 因此以下代码⽆效!

 ⽬前⽀持的选择器有:

 8.4. ⼩程序中使⽤less

原⽣⼩程序不⽀持 less ,其他基于⼩程序的框架⼤体都⽀持,如 wepy , mpvue , taro 等。 但是仅仅因为⼀个less功能,⽽去引⼊⼀个框架,肯定是不可取的。因此可以⽤以下⽅式来实现

1. 编辑器是 vscode

2. 安装插件 easy less

3. 在vs code的设置中加⼊如下,配置

4. 在要编写样式的地⽅,新建 less ⽂件,如 index.less ,然后正常编辑即可。

9. 常⻅组件

重点讲解⼩程序中常⽤的布局组件

view,text,rich--text,button,image,navigator,icon,swiper,radio,checkbox。 等

9.1. view

代替 原来的 div 标签

9.2. text

1. ⽂本标签

2. 只能嵌套text

3. ⻓按⽂字可以复制(只有该标签有这个功能)

4. 可以对空格 回⻋ 进⾏编码

 9.2.1. 代码

9.3. image

1. 图⽚标签,image组件默认宽度320px、⾼度240px

2. ⽀持懒加载

 mode 有效值:

mode 有 13 种模式,其中 4 种是缩放模式,9种是裁剪模式。

9.4. swiper

微信内置轮播图组件

 默认宽度 100% ⾼度 150px

 

9.4.1. swiper

滑块视图容器。

9.4.2. swiper-item

滑块

默认宽度和⾼度都是100%

9.5. navigator

 导航组件 类似超链接标签

 open-type 有效值:

9.6. rich-text

富文本标签

可以将字符串解析成 对应标签,类似 vue中 v--html 功能

 代码

9.6.1. nodes属性

nodes 属性⽀持 字符串标签节点数组

 ⽂本节点:type = text

·    nodes 不推荐使⽤ String 类型,性能会有所下降。

·    rich--text 组件内屏蔽所有节点的事件。

·    attrs 属性不⽀持 id ,⽀持 class 。

·    name 属性⼤⼩写不敏感。

·    如果使⽤了不受信任的 HTML 节点,该节点及其所有⼦节点将会被移除。

·    img 标签仅⽀持⽹络图⽚。

9.7. button

 

 size 的合法值

 type 的合法值

 form-type 的合法值

 open-type 的合法值

 open-type 的 contact的实现流程

1. 将⼩程序 的 appid 由测试号改为 ⾃⼰的 appid

2. 登录微信小程序官网,添加 客服 -- 微信

3. 为了⽅便演⽰,⽼师⾃⼰准备了两个账号 1. 普通⽤⼾ A 2. 客服-微信 B

4. 就是⼲!

9.8. icon

 

代码:

js

wxml

9.9. radio

可以通过 color属性来修改颜色

 需要搭配 radio-group ⼀起使用

9.10.checkbox

可以通过 color属性来修改颜色

  需要搭配  ⼀起使用checkbox-group

10.自定义组件

类似vue或者react中的自定义组件

⼩程序允许我们使⽤⾃定义组件的⽅式来构建⻚⾯。

10.1. 创建⾃定义组件

类似于页面,一个自定义组件由 json wxml wxss js 4个文件组成

可以在微信开发者⼯具中快速创建组件的⽂件结构

 

 10.1.1. 声明组件

⾸先需要在组件的 json ⽂件中进⾏⾃定义组件声明

myHeader.json

 10.1.2. 编辑组件

同时,还要在组件的 wxml ⽂件中编写组件模板,在 wxss ⽂件中加⼊组件样式

slot 表⽰插槽,类似vue中的slot

myHeader.wxml

 在组件的 wxss ⽂件中编写样式

注意:在组件wxss中不应使用ID选择器、属性选择器和标签名选择器。

myHeader.wxss

 10.1.3. 注册组件

在组件的 js ⽂件中,需要使⽤ Component() 来注册组件,并提供组件的属性定义、内部数据和 ⾃定义⽅法

myHeader.js

10.2. 声明引⼊⾃定义组件

⾸先要在⻚⾯的 json ⽂件中进⾏引⽤声明。还要提供对应的组件名和组件路径

index.wxml

10.3. ⻚⾯中使⽤⾃定义组件

10.4. 其他属性

10.5. 定义段与⽰例⽅法

Component 构造器可⽤于定义组件,调⽤ Component 构造器时可以指定组件的属性、数据、⽅法 等。

10.6. 组件-⾃定义组件传参

1. ⽗组件通过属性的⽅式给⼦组件传递参数

2. ⼦组件通过事件的⽅式向⽗组件传递参数

10.6.1. 过程

        1. ⽗组件 把数据 {{tabs}} 传递到 ⼦组件的 tabItems 属性中

        2. ⽗组件 监听 onMyTab 事件

        3. ⼦组件 触发 bindmytap 中的 mytap 事件

                1. ⾃定义组件触发事件时,需要使⽤ triggerEvent ⽅法,指定 事件名 、 detail 对象 传智播客-黑马程序员

        4. ⽗ -> ⼦ 动态传值 this.selectComponent("#tabs")

⽗组件代码

 ⼦组件代码

10.7. ⼩结

1. 标签名 是 中划线的⽅式

2. 属性的⽅式 也是要中划线的⽅式

3. 其他情况可以使⽤驼峰命名

        1. 组件的⽂件名如 myHeader.js 的等

        2. 组件内的要接收的属性名 如 innerText

4. 更多...

11. ⼩程序⽣命周期

分为 应⽤⽣命周期 和 ⻚⾯⽣命周期

关于小程序前后台的定义和小程序的运行机制,请参考运行机制章节。

11.1.应用生命周期

 11.2.页面生命周期

 11.3. ⻚⾯⽣命周期图解

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值