微信小程序自定义组件
微信小程序自定义组件
一. 创建自定义组件
类似于页面,一个自定义组件由 json
wxml
wxss
js
4个文件组成
二.组件声明
首先需要在自定义组件所在的 json
文件中进行自定义组件声明
复制{
"component": true
}
三.编辑组件
同时,还要在 wxml
文件中编写组件模板,在 wxss
文件中加入组件样式
wxml与xcss和普通页面设置差不多
wxml
复制<!-- 这是自定义组件的内部WXML结构 -->
<view class="inner">
{{innerText}}
<slot></slot>
</view>
xcss
复制/* 这里的样式只应用于这个自定义组件 */
.inner {
color: red;
}
js文件设置有点区别
复制Component({
properties: {
// 这里定义了innerText属性,属性值可以在组件使用时指定
innerText: {
type: String,
value: 'default value',
}
},
data: {
// 这里是一些组件内部数据
someData: {}
},
methods: {
// 这里是一个自定义方法,方法必须写在methods内
customMethod: function(){}
}
})
四.再使用该组件的组件页面
首先要在页面的 json
文件中进行引用声明。还要提供对应的组件名和组件路径
复制 // 引用声明
"usingComponents": {
// 要使用的组件的名称 // 组件的路径
"component-tag-name": "path/to/the/custom/component"
}
}
组件的使用和Vue一样,
在wxml文件中
复制<component-tag-name></component-tag-name>
五.父组件中显示子组件内的变量
父组件的wxml页面传输值
复制<component-tag-name></component-tag-name>
子组件的wxml
复制<view>{{变量名}}</view>
让父组件内显示子组件的内容
复制 #在组件中
properties: {
变量名:{
type:String,
value:"变量值"
}
}
//而不是把变量名放在data中
六.触发子组件的事件时候触发父组件的事件
父组件页面
复制 页面
<component-tag-name bind:icre="icre"></component-tag-name>
父组件的js
复制页面中js
icre:function(e){
console.log(e)
this.setData({
num:this.data.num+1
})
},
子组件页面
复制<button bindtap='clickpush'>加我</button>
子组件的js
复制clickpush:function(e){
console.log(e)
this.triggerEvent("icre",{"index":13},{})
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理