微信小程序 - 组件 | 自定义组件 | 组件事件传递页面
2024-10-19 15:32:46
组件
小程序允许我们使用自定义组件的方式来构建页面 类似Vue的小组件
自定义组件
类似于页面,一个自定义组件由 json
, wxml,
wxss,
js
4个文件组成
1.创建
1.创建components文件夹
2.在components文件下创建comp1文件夹
3.comp1 文件夹下创建Component文件
2.声明组件
首先需要在 json
文件中进行自定义组件声明
{
"component": true, // 会自动生成
}
3.辑组件
与其他页面一样 在 wxml
文件中编写组件模板,在 wxss
文件中加入组件样式
注意:在组件wxss中不应使用ID选择器、属性选择器和标签名选择器。
comp.wxml
<!-- 这是自定义组件的内部WXML结构 -->
<text>{{innerText}}</text>
4.注册组件
在自定义组件的 js
文件中,需要使用 Component()
来注册组件,并提供组件的属性定义、内部数据和自定义方法
comp.js
Component({
properties: {
// 这里定义了innerText属性,属性值可以在组件使用时指定
innerText: {
type: String,
value: 'default value',
}
},
data: {
// 这里是一些组件内部数据
someData: {}
},
methods: {
// 这里是一个自定义方法
customMethod: function(){}
}
}) // compinent 类似页面js文件中的的 page
// properties 类似页面的js文件中的 data
使用自定义组件
1.引入组件
在页面的 json
文件中进行引用声明。还要提供对应的组件名和组件路径
test.json
{
"usingComponents": {
"comp": "/components/comp/comp" // 组件路径
},
"navigationBarTitleText": "自定义组件" // 组件页面台头名
}
2.页面使用组件
test.wxml
<comp innerText='重新赋值'></comp>
<!--主页引用组件时,可以重新给组件中的变量重新赋值-->
组件将事件传给页面
组件中:
comp.wxml
<button bind:tap="click" data-ss="123">按钮</button> // 按钮会渲染到页面
comp.js
组件的事件要在组件的js文件中的methods方法属性中实现
methods: {
click: function (e) {
// console.log(e)
this.triggerEvent("icre", { "index": 323 }, {})
}
}
// triggerEvent 关键字用于将事件传递给页面
// icer (可自定义) 页面通过 bind:icre 获取组件事件
// { "index": 323 } 为组件事件携带的数据
页面中:
test.wxml
<comp bind:icre="click"></comp>
test.js
Page({
data{
num:0,
},
// 页面实现 icer 事件
click: function (e) {
console.log(e)
this.setData({
num: this.data.num + 1
})
// this.data.num = this.data.num+1
}, })
最新文章
- 没有Hyper-V服务,WP Emulator无法启动
- 一些有用的SAP技术TCODE
- Linux系统VNC配置实践总结
- Orchard 源码探索(Application_Start)之异步委托调用
- ajax终结篇
- Windows Azure Virtual Machine (34) 保护Azure虚拟机
- bootstrap学习笔记之导航条基础
- django-rest-framework之请求与响应
- Spring Cloud Consul 实现服务注册和发现
- c#gridcontrol 的一些设置
- DIY——自制吸烟仪
- CNZZ友盟访问明细的采集办法
- JMeter 中对于Json数据的处理方法
- 考前停课集训 Day5 累
- HashMap Hashtable LinkedHashMap 和TreeMap
- day27-python阶段性复习-基础
- javascript:控制一个元素高度始终等于浏览器高度
- js精准时间迭代器(定时器)
- Anaconda 入门详解
- 深入理解ajax系列第八篇
热门文章
- Git&; GitHub常用的操作
- python--小确幸
- .NET Core 中间件之压缩、缓存
- cocos2dx 3.17(Windows下) 接入skynet和sprotol
- 聊一下,前后分离后带来的跨域访问和cookie问题
- LeetCode 151:给定一个字符串,逐个翻转字符串中的每个单词 Reverse Words in a String
- Spring Security 实战干货:使用 JWT 认证访问接口
- 什么是IDE(集成开发环境)?
- Kubernetes PV与PVC的关系
- WEB网站发布服务器IIS报错问题终极解决方案,查到问题点