微信小程序开发

一、创建项目

1、首先创建项目需要准备的工作

微信公众平台注册开发者账号:https://mp.weixin.qq.com/

下载小程序开发工具:

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

注意:(填写注册邮箱信息,注意一个邮箱只能注册一次,该邮箱不能注册其他腾讯平台)

2、认识项目目录

全局配置文件app.json (对于一个小程序项目而言,最重要的文件是app.json,它也是开发工具识别一个文件夹是否为小程序项目的标识。如果文件夹中没有app.json文件,则提示无法创建项目。)

pages目录:用于存放所有的页面。

utils目录:用于存放工具类文件。

app.js:是入口文件,程序在运行时,首先要执行该文件。

app.json:是全局配置文件,用于配置小程序的信息(它里面配置的是全局信息)。

app.wxss:是全局样式文件。全局样式文件里面定义的选择器,在所有的页面中生效。

project.config.json:是项目配置文件。

sitemap.json:是SEO配置文件,方便用户搜索到该小程序。

总结:

页面的.json、.js、.wxss文件必须与.wxml文件同名,否则不生效

每个页面都必须在pages下注册,没有注册的页面,如果不访问,编译能通过,一旦试图访问该页面则会报错

可以通过在pages下添加一个选项快速新建一个页面,开发工具会自动生成对应的文件


3、页面组成

每一个页面由四个文件组成:xxx.wxml文件、xxx.wxss文件、 xxx.js文件和xxx.json文件。 

(1)xxx.wxml文件

xxx.wxml文件,就相当于一个html文件。在wxml文件中,不能写传统的html标签,只能写微信提供的组件。

① view组件

相当于div标签。

② text组件

相当于span标签。

③ swiper

swiper是滑块视图容器,它里面只能放swiper-item组件。

swiper组件的常用属性:

circular是衔接滑动

autoplay是自动切换

interval是自动切换时间间隔

indicator-dots是否显示面板指示点

indicator-color指示点颜色

indicator-active-color当前选中的指示点颜色

如图一:

图1

④ image

image是图片组件,最好全部采用网络图片,因为小程序的总体积不允许超过2MB。

(2)xxx.wxss文件

xxx.wxss文件,就相当于一个css文件。在wxss文件中,最好不要写标签选择器和id选择器,统一写类选择器。

为了让小程序里面的内容在各种设备上能够自适应显示,微信推出了响应式单位:rpx。在iphone6中,2rpx=1px。

width: 60rpx;     /* 相当于width: 30px; */


(3)xxx.js文件

xxx.js文件,是交互文件(核心文件)。

Page()函数,返回页面对象,该函数需要传一个配置参数,这个配置参数是一个对象。在这个配置对象中,定义当前页面的所有内容。

① data

定义页面的数据。

Page({

     data: {

         name: "热门歌曲",

         songs: [{id: 1001}, {id: 1002}]

  }

})


② 自定义函数

开发者可以添加任意的函数或数据到Object 参数中,在页面的函数中用this可以访问。

Page({

    // 定义函数

    delSong() {

        this.data.songs.splice(0, 1)

        this.setData({

            songs: this.data.songs

        })

    }

})

(4)xxx.json文件

xxx.json文件,是页面的配置文件(它里面配置的是当前页面信息)。

5、插值表达式 {{}}

WXML 中的动态数据均来自对应 Page 的 data。

(1)获取data中数据

通过插值表达式{{}},可以显示js里面定义的data里面的数据。

<text>歌曲分类:{{name}}</text>

(2)组件属性(需要在双引号之内)

  <view id="item-{{id}}"> </view>

(3)运算

可以在{{}} 内进行简单的运算。

① 三元运算

<view class="item {{index%2===0 ? 'bg' : ''}}"> </view>

② 逻辑判断

  <view wx:if="{{length > 5}}"> </view>

6、bindtap

bindtap是触屏事件,其实就是相当于网页中的点击事件。

<view class="btn" bindtap="delSong">删除</view>

7、data-xxx 自定义属性

小程序中bindtap绑定方法时不能传参数。所以组件通过data-xxx传递数据。

<view class="btn" data-index="{{index}}" bindtap="del1">删除</view>


注意:自定义属性的命名用驼峰或者大写命名,小程序内部会自动转成小写。

del(e){

    //解构出自定义的index属性

    let {currentTarget:{dataset:{index}}} = e

 }

8、setData()方法

setData()方法,更新页面中数据。页面数据更新后,调用setData()方法重新渲染到页面。


   this.setData({

          typeId:typeid,

          name:typename

    })

二、列表渲染

1、wx:for

wx:for指令用于循环数组数据,生成组件。

循环出来的每一项通过item返回,每一项对应的索引,通过index返回。

2、wx:key

wx:key="",设置每一项唯一的标识。循环列表时,添加wx:key的好处是,将来列表发生变化时重新渲染列表的损耗为更低。

如下图2

图2

三、条件渲染

条件渲染可以使用wx:if或hidden。

一般来说,wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好。

1、wx:if

wx:if用于条件渲染:条件为真生成里面的内容,条件为假不会生成里面的内容。(每次重新生成内容)

也可以用wx:elif 和 wx:else 来添加一个 else 块。

<view wx:if="{{typeID == 1}}"> 1 </view>

  <view wx:elif="{{typeID == 2}}"> 2 </view>

  <view wx:else> 3 </view>

2、hidden

hidden用于条件渲染:条件为真隐藏里面的内容,条件为假显示里面的内容。(每次切换样式)

  <view hidden="{{typeID!= 2}}"> 1 </view>

四、tabBar&页面跳转

这个配置项是用来配置页面底部的tab栏的,开发者可以根据自己的需求来进行配置.

注意:tabBar是一个数组,只能配置最少2个,最多5个,而且tab栏的顺序是按照数组的排序来的.

tabBar官方给出了五个属性(color(HexColor), selectedColor(HexColor), backgroundColor(HexColor), borderStyle(String), list(Array) ).

接下来说说我对这五个属性的理解:

# color设置tab上的文字默认颜色(黑色)

# selectedColor设置tab上的文字选中的颜色(#369深蓝色)

# backgroundColor设置tab的背景颜色(white)

# borderStyle设置边框的颜色,现在仅支持(black和white)

上面这四个属性就是按照官方给出的API来设置就可以,下面说一下list属性.list属性接受的是一个数组(Array),在list下面配置的每一项都是一个对象,他们都有以下这四个属性(pagePath(String), text(String), iconPath( String), selectedIconPath(String)). 

* pagePath 这个定义的是页面的路径,但是这个属性定义的路径必须是在pages上定义过的. 

* text 设置的是按钮上的文字 

* iconPath 是定义icon图片的路径,这个属性定义的图片大小不超过40kb 

* selectedIconPath 定义的是当选中按钮之后显示的图片,同样图片的大小不能超过40kb.


比如:这是底部导航栏效果图

底部导航栏

解析:蓝色小屋就是选中的图片(selectedIconPath

            灰色购物车就是图片(iconPath 

            首页蓝色的就是选中的颜色(selectedColor

            列表黑色的就是color

五、确认框和消息框

1、wx.showModal() 确认框

    title:提示的标题

    content:提示的内容

    success:接口调用成功的回调函数。回调函数中的confirm属性返回true,表示点击的是确定 按钮,否则是取消按钮。

wx.showModal({

      content:'是否确定删除',

      success:({confirm})=>{

        //confirm返回true,表示点击的是确定按钮,否则是取消按钮

        if(confirm){

}}

 }) 



2、wx.showToast() 显示消息提示框

title:提示的内容

icon:图标

duration:消息提示框的显示时间

mask:是否显示透明蒙层,防止触摸穿透

wx.showToast({                                                                                                                     title: '删除成功',        icon:"success",        duration:1500,        mask:true   })


六,封装方法

模块化语法有两种:① commonjs规范,② es6规范。

nodejs环境采用的就是commonjs规范。采用exports 或 module.exports 导出成员,采用require() 导入成员。

微信小程序支持commonjs规范,同时还支持官方的ES6规范。ES6规范采用export 导出成员,采用import 导入成员。

1,封装方法并导出

将封装的方法放到util目录下的js文件中。可以新建js文件,也可以写在直接util.js文件中。

(1)确认框方法

// 定义确认框方法,并导出

export let $confirm = (content)=>{

  return new Promise((resolve)=>{

    wx.showModal({

      content,

      success:({confirm})=>{

        if(confirm){

          resolve()

        }

      }

    })

  })

}


(2)消息框方法

// 定义消息框方法,并导出

export let $msg = (title,icon='success',duration=1500)=>{

  wx.showToast({

    title,

    icon,

    duration,

    mask:true

  })

}


(3)获取事件参数的方法

export let $key = (e)=>{

  return e.currentTarget.dataset

}



2,导入方法

import是ES6的导入语句。


// 导入msg模块中的指定成员

import {$msg,$confirm} from '../../utils/msg'



3.将方法注册给全局对象wx

wx对象是微信小程序的全局对象,在任何地方都可以使用

(1)注册语句

wx.$msg = $msg

wx.$confirm = $confirm

(2)在app.js入口文件中导入

注意:注册给wx对象的方法,需要在app.js文件中导入,才可使用。

// 导入初始化文件

import './utils/index'

(3)调用方法

wx.方法名(参数)

wx.$msg('删除成功')

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容