微信小程序开发实战之 06-微信小程序开发进阶

自定义组件

创建自定义组件

微信小程序自定义组件一般放在 components 文件夹下,由 JSON、JS、WXML、WXSS 文件组成。

组件的 JSON 文件中,需要声明 component 属性,将属性值设置为 true 以表示其是一个组件。

JSON 复制代码
{
    "component": true,
    "usingComponents": {
    }
}

组件的 JS 文件中,需要调用 Component 函数构建组件。

JavaScript 复制代码
Component({
    properties: {},
    data: {},
    methods: {}
});

Component 函数的基本选项:

名称 描述
data 组件的初始数据,用于组件模板渲染
properties 组件的属性列表,用于接收外界传递到组件中的数据 可以为其指定数据类型和类型,但其本质上与 data 没有区别
methods 组件的事件处理函数

示例:创建自定义组件

测试组件配置文件(components/test/test.json):

JSON 复制代码
{
    "component": true,
    "usingComponents": {
    }
}

测试组件页面结构(components/test/test.wxml):

HTML 复制代码
<button bindtap="showMessage">点我欢迎{{name}}的到来</button>

测试组件页面逻辑(components/test/test.js):

JavaScript 复制代码
Component({
    properties: {
        name: {
            type: String,
            value: '张三'
        }
    },
    data: {},
    methods: {
        showMessage() {
            wx.showToast({
                title: "欢迎你," + this.data.name
            })
        }
    }
});

使用自定义组件

自定义组件的引用方式分为局部引用和全局引用。

  • 局部引用,即在页面配置文件(pages/xxx/xxx.json)中引用自定义组件。
  • 全局引用,即在全局配置文件(app.json)中引用自定义组件。

引用自定义组件的基本用法:

JSON 复制代码
"usingComponents": {
    "组件标签": "组件路径"
}

示例:使用自定义组件

首页页面配置文件(pages/index/index.json):

JSON 复制代码
{
    "usingComponents": {
        "navigation-bar": "/components/navigation-bar/navigation-bar",
        "test": "/components/test/test"
    }
}

首页页面结构(pages/index/index.wxml):

HTML 复制代码
<test name="多仔"></test>

示例效果:


UI 组件库

Vant Weapp

Vant Weapp 是有赞前端团队开发的一套开源的微信小程序 UI 组件库,其界面风格统一、功能齐全,提供了一整套 UI 基础组件和业务组件,能够快速搭建出风格统一的页面。

Vant Weapp 文档:https://vant-ui.github.io/vant-weapp/0.x/#/intro

在微信小程序中使用 Vant Weapp,需要利用 npm 将 Vant Weapp 安装到项目中,并进行相关配置。

  • 微信小程序默认没有初始化 package.json,故需要先初始化 package.json。
  • 在全局配置文件(app.json)中,需要删除 style 配置项,以关闭新版基础组件样式,避免样式混乱。
  • 微信小程序不能使用 npm 包,需要在微信开发者工具中将 npm 包转换成微信小程序可以使用的包。
  • 使用 Vant Weapp 组件时,需要局部或全局导入对应的组件。

示例:Vant Weapp

终端执行:

PowerShell 复制代码
npm init -y

npm i vant-weapp -S --production

全局配置文件(app.json):

PowerShell 复制代码
{
	"pages": [
    	"pages/index/index"
  	],
  	"window": {
    	"navigationBarTextStyle": "black",
    	"navigationStyle": "custom",
    	"enablePullDownRefresh": true
  	},
  	"componentFramework": "glass-easel",
  	"sitemapLocation": "sitemap.json",
  	"lazyCodeLoading": "requiredComponents"
}

构建 npm 包:

首页页面配置文件(pages/index/index.json):

JSON 复制代码
{
	"usingComponents": {
    	"navigation-bar": "/components/navigation-bar/navigation-bar",
    	"van-button": "vant-weapp/button"
  	}
}

首页页面结构(pages/index/index.wxml):

HTML 复制代码
<van-button type="default">默认按钮</van-button>
<van-button type="primary">主要按钮</van-button>
<van-button type="info">信息按钮</van-button>
<van-button type="warning">警告按钮</van-button>
<van-button type="danger">危险按钮</van-button>

示例效果:


WeUI

WeUI 是微信官方设计团队为微信移动 Web 量身设计的一套与微信原生视觉体验一致的组件库。

WeUI Web 文档:https://github.com/Tencent/weui/wiki

WeUI-MiniProgram 文档:https://wechat-miniprogram.github.io/weui/docs/

在微信小程序中使用 WeUI,可以在全局配置文件(app.json)中直接启用 WeUI,或利用 npm 将 WeUI 安装到项目中。

WeUI 组件库中的组件有两种类型,一种是直接通过 class 样式类使用的组件(WeUI Web),另一种是需要在页面配置或全局配置中引入的组件(WeUI-MiniProgram)。


示例:WeUI

全局配置文件(app.json):

JSON 复制代码
"useExtendedLib": {
    "weui": true
}

首页页面结构(pages/index/index.wxml):

HTML 复制代码
<a role="button" class="weui-btn weui-btn_default">按钮</a>

示例效果:


uni-app

uni-app 概述

uni-app 是使用 Vue.js 开发的一个前端框架,基于该框架可以很方便地进行多端项目开发,其支持的平台包括 Android、iOS、响应式 Web 和各种主流的小程序等。

使用 uni-app 开发项目的优势:

  • 平台能力不受限,一套代码多端发行。
  • 性能体验优秀,加载新页面速度快,可以自动更新数据。
  • 基于通用技术栈 Vue.js,学习成本低。
  • 生态开放、组件丰富。

HBuilderX

uni-app 官方推荐使用 HBuilderX 来开发 uni-app 项目。

HBuilderX 下载:https://dcloud.io/hbuilderx.html

uni-app 项目结构

在 HBuilderX 中新建一个 uni-app 项目。

uni-app 项目的基本结构:

名称 描述
common 存放共用文件
components 存放可复用的 UI 组件
pages 存放所有页面
static 存放静态资源文件,如图片、视频等
unpackage 存放编译后的文件
App.vue 页面根组件,用于配置全局样式、生命周期函数等
main.js 入口文件,在入口文件中可以导入 Vue 实例,将 Vue 实例挂载到页面上使用
manifest.json 项目配置文件,用于指定应用名称、AppID、Logo 等打包信息
pages.json 用于对 uni-app 项目进行全局配置,决定页面文件的路径、导航栏、标签栏等信息
uni.scss 保存 uni-app 项目内置的常用样式变量,方便整体控制应用风格

将 uni-app 项目运行至微信小程序

使用 uni-app 开发完成项目后,可以将 uni-app 项目运行至微信小程序。

打开项目配置文件(manifest.json),获取 uni-app 应用标识 AppId。

在项目配置文件(manifest.json)中,配置微信小程序 AppId。

在 HBuilderX 运行设置中,配置微信开发者工具路径。

在微信开发者工具中,开启服务端口。

在 HBuilderX 中,将项目运行到小程序模拟器-微信开发者工具。

uni-app 项目全局配置文件

在 uni-app 中,可以通过修改全局配置文件(pages.json)来对 uni-app 项目进行全局配置,包括页面文件的路径、导航栏、底部标签栏等。

JSON 复制代码
{
	"pages": [
		{
			"path": "pages/index/index",
			"style": {
				"navigationBarTitleText": "uni-app"
			}
		}
	],
	"globalStyle": {
		"navigationBarTextStyle": "black",
		"navigationBarTitleText": "uni-app",
		"navigationBarBackgroundColor": "#F8F8F8",
		"backgroundColor": "#F8F8F8"
	},
	"uniIdRouter": {}
}
相关推荐
东东5161 天前
xxx食堂移动预约点餐系统 (springboot+微信小程序)
spring boot·微信小程序·小程序·毕业设计·个人开发·毕设
韩立学长1 天前
【开题答辩实录分享】以《智慧校园平台微信小程序》为例进行选题答辩实录分享
spring boot·微信小程序·小程序
h_65432101 天前
微信小程序:按顺序一张图片加载完后,再加载另一张
微信小程序·小程序
qq_316837752 天前
uniapp打包微信小程序使用插件
微信小程序·小程序·uni-app
不爱学习小趴菜3 天前
uniapp微信小程序无法屏蔽右上角胶囊按钮(...)问题解决方案
微信小程序·小程序·uni-app
plmm烟酒僧3 天前
《微信小程序demo开发》第一部分-编写页面逻辑
javascript·微信小程序·小程序·html·微信开发者工具·小程序开发
Stara05113 天前
微信小程序配置与导航深度指南—全局/页面配置解析与高效传参策略V1.2
javascript·微信小程序·html·模块化开发·页面导航·wxs脚本·小程序api
全栈小53 天前
【小程序】微信小程序input设置readonly只读属性无效,这是怎么回事呢
微信小程序·小程序·notepad++
sheji34164 天前
【开题答辩全过程】以 基于微信小程序的摄影器材租赁系统设计与实现为例,包含答辩的问题和答案
微信小程序·小程序
毕设源码-邱学长4 天前
【开题答辩全过程】以 基于微信小程序的社团管理系统的设计与实现为例,包含答辩的问题和答案
微信小程序·小程序