编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

小程序组件化开发框架 wepy(小程序组件库怎么用)

wxchong 2024-10-10 12:41:26 开源技术 15 ℃ 0 评论

wepy 是一个小程序组件化开发框架。

组件

小程序支持js模块化,但彼此独立,业务代码与交互事件仍需在页面处理。无法实现组件化的松耦合与复用的效果。 例如模板A中绑定一个bindtap="myclick",模板B中同样绑定一样bindtap="myclick",那么就会影响同一个页面事件。对于数据同样如此。因此只有通过改变变量或者事件方法,或者给其加不同前缀才能实现绑定不同事件或者不同数据。当页面复杂之后就十分不利于开发维护。 因此wepy让小程序支持组件化开发,组件的所有业务与功能在组件本身实现,组件与组件之间彼此隔离,上述例子在wepy的组件化开发过程中,A组件只会影响到A绑定的myclick,B也如此。

wepy编译组件的过程如下:

组件引用

当页面或者组件需要引入子组件时,需要在页面或者script中的components给组件分配唯一id,并且在template中添加<component>标签,如index.wpy。

页面和组件都可以引入子组件,引入若干组件后,如下图:

Index页面引入A,B,C三个组件,同时组件A和B又有自己的子组件D,E,F,G,H。

项目目录结构

├── dist 微信开发者工具指定的目录
├── node_modules 
├── src 代码编写的目录
| ├── components 组件文件夹(非完整页面)
| | ├── com_a.wpy 可复用组件 a
| | └── com_b.wpy 可复用组件 b
| ├── pages 页面文件夹(完整页面)
| | ├── index.wpy 页面 index
| | └── page.wpy 页面 page
| └── app.wpy 小程序配置项(全局样式配置、声明钩子等)
└── package.json package 配置

主要解决问题

  1. 开发模式转换
  2. 支持组件化开发
  3. 支持加载外部 NPM 包
  4. 单文件模式,使得目录结构更加清晰
  5. 默认使用 babel 编译,支持 ES6/7 的一些新特性
  6. 针对原生 API 进行优化

Demo

<style lang="less">
 @color: #4D926F;
 .userinfo {
 color: @color;
 }
</style>
<template lang="pug">
 view(class='container')
 view(class='userinfo' @tap='tap')
 mycom(:prop.sync='myprop' @fn.user='myevent')
 text {{now}}
</template>
<script>
 import wepy from 'wepy';
 import mycom from '../components/mycom';
 export default class Index extends wepy.page {
 
 components = { mycom };
 data = {
 myprop: {}
 };
 computed = {
 now () { return new Date().getTime(); }
 };
 async onLoad() {
 await sleep(3);
 console.log('Hello World');
 }
 sleep(time) {
 return new Promise((resolve, reject) => setTimeout(resolve, time * 1000));
 }
 }
</script>

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表