组件

小程序允许我们使用自定义组件的方式来构建页面 类似Vue的小组件

自定义组件

类似于页面,一个自定义组件由 jsonwxml, 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
}, })

最新文章

  1. 没有Hyper-V服务,WP Emulator无法启动
  2. 一些有用的SAP技术TCODE
  3. Linux系统VNC配置实践总结
  4. Orchard 源码探索(Application_Start)之异步委托调用
  5. ajax终结篇
  6. Windows Azure Virtual Machine (34) 保护Azure虚拟机
  7. bootstrap学习笔记之导航条基础
  8. django-rest-framework之请求与响应
  9. Spring Cloud Consul 实现服务注册和发现
  10. c#gridcontrol 的一些设置
  11. DIY——自制吸烟仪
  12. CNZZ友盟访问明细的采集办法
  13. JMeter 中对于Json数据的处理方法
  14. 考前停课集训 Day5 累
  15. HashMap Hashtable LinkedHashMap 和TreeMap
  16. day27-python阶段性复习-基础
  17. javascript:控制一个元素高度始终等于浏览器高度
  18. js精准时间迭代器(定时器)
  19. Anaconda 入门详解
  20. 深入理解ajax系列第八篇

热门文章

  1. Git&amp; GitHub常用的操作
  2. python--小确幸
  3. .NET Core 中间件之压缩、缓存
  4. cocos2dx 3.17(Windows下) 接入skynet和sprotol
  5. 聊一下,前后分离后带来的跨域访问和cookie问题
  6. LeetCode 151:给定一个字符串,逐个翻转字符串中的每个单词 Reverse Words in a String
  7. Spring Security 实战干货:使用 JWT 认证访问接口
  8. 什么是IDE(集成开发环境)?
  9. Kubernetes PV与PVC的关系
  10. WEB网站发布服务器IIS报错问题终极解决方案,查到问题点