wx-component
========
一种微信小程序组件化解决方案
### 使用
#### 拷贝文件
拷贝`src`路径下的所有文件到项目里,例如到`libs/`目录下
#### 引用
在`app.js`中引用`wx-component`组件
**app.js**
```
require("/libs/wx-component/index")
...
App({
onLaunch() {
},
globalData: {
...
}
})
```
### 推荐的目录结构
```
├─project 小程序前端
├─components 业务功能组件
├─login 登录组件
├─index.wxss
├─index.wxml
├─index.js
├─pages 小程序页面
```
### 定义component
**/components/login/index.js**
```
module.exports = {
// 组件名
// 也可以不填,不填写会用`components/X/index.js`中的X命名
name: "login",
// 组件私有数据
data: {
item: [1, 2, 3]
},
// 组件属性
// 可以预先定义默认值
// 也可以外部传入覆盖默认值
props: {
text: "start"
},
// 当组件被加载
onLoad() {
this.setData({
is_loaded: true
})
},
// 当组件被卸载
onUnload() {
this.setData({
is_unloaded: true
})
},
// 组件私有方法
methods: {
getMsg() {
...
},
sendMsg() {
...
}
},
// 其他
....
}
```
### JS中注册component
**/components/grabRedPacket/index.js**
```
Page({
data: {
state: 1
},
components: {
login: {
text: "start from parent",
onLogin() {
...
}
}
},
onShow() {
...
}
...
})
```
### WXML中引入component
**/components/grabRedPacket/index.wxml**
**注意 template 便签中的两处 data需要固定写 `{{...componentName}}`**
```
<import src='../../components/login/index.wxml'/>
<view>
<template is="login" data="{{...login}}"></template>
</view>
```
### app.wxss中引入component
**/app.wxss**
```
@import "../../components/login/index.wxss";
```
**命名规范**
组件最外层的`className`用双下划线开头的命名空间,如:`__login`。
### API
#### Page依赖组件
每次组件被依赖,都会实例化(new)一个`Component`,防止被多次依赖不停修改。
#### Page的`children`
每个Page如果依赖组件,都有一个`children`属性,组件的集合。
```
Page({
components: {
login: {}
},
onShow() {
console.log(this.children) // {login: ....}
}
})
```
#### 组件的`parent`方法
**components/login/index.js**
```
module.exports = {
data: {
text: "start"
},
props: {
...
},
attached() {
console.log(this.parent) // Page
}
}
```
**pages/index/index.js**
```
module.exports = {
data: {}
components: {
login: {
...
}
}
}
```
#### 组件的`setData`方法
每个被实例化的组件都有自己的`setData`方法,只能设置自身的data,不能改变父级Page的data,如:
```
Page({
components: {
login: {}
},
onShow() {
this.children.login.setData({
text: "start"
})
}
})
```
#### Page的`data`
Page的data结构:
```
data: {
// Page自身的data
state: "index",
// 组件的data
login: {
text: "state"
},
another_component: {
text: "state"
}
}
```
### 注意
不管是 page 的 data 或是 component 的 data,都不要出现和组件名一样的字段,例如:存在一个叫`banner`的组件,那么都不要存在如下的data结构:
```
Page{
data: {
banner: "...."
}
}
```
因为banner字段是留给组件的,不要自定义它,否则会被组件data覆盖。
没有合适的资源?快使用搜索试试~ 我知道了~
微信小程序组件化解决方案.zip
共6个文件
js:3个
md:1个
json:1个
需积分: 3 0 下载量 190 浏览量
2024-01-15
10:14:14
上传
评论
收藏 7KB ZIP 举报
温馨提示
方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以有效地应对挑战、优化流程或实现目标。以下是方案的主要作用: 问题解决: 方案的核心目标是解决问题。通过系统性的规划和执行,方案能够分析问题的根本原因,提供可行的解决方案,并引导实施过程,确保问题得到合理解决。 目标达成: 方案通常与明确的目标相关联,它提供了一种达成这些目标的计划。无论是企业战略、项目管理还是个人发展,方案的制定都有助于明确目标并提供达成目标的路径。 资源优化: 方案在设计时考虑了可用资源,以最大化其效用。通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险管理策略。这有助于减轻潜在问题的影响,提高方案的可行性和可持续性。 决策支持: 方案提供了决策者所需的信息和数据,以便做出明智的决策。这种数据驱动的方法有助于减少不确定性,提高决策的准确性。 团队协作: 复杂的问题通常需要多个人的协同努力。方案提供了一个共同的框架,帮助团队成员理解各自的职责和任务,促进协作并确保整个团队朝着共同的目标努力。 监控与评估: 方案通常包括监控和评估的机制,以确保实施的有效性。通过定期的评估,可以及时调整方案,以适应变化的环境或新的挑战。 总体而言,方案的作用在于提供一种有序、有计划的方法,以解决问题、实现目标,并在实施过程中最大化资源利用和风险管理。
资源推荐
资源详情
资源评论
收起资源包目录
微信小程序组件化解决方案.zip (6个子文件)
SJT-code
src
is.js 17KB
extend.js 2KB
index.js 4KB
package.json 128B
.gitignore 12B
README.md 3KB
共 6 条
- 1
资源评论
JJJ69
- 粉丝: 5966
- 资源: 5593
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功