请问是否考虑开放自定义组件吗?
发布于 6 年前 作者 xiuying37 1062 次浏览 来自 问答

小程序提供的组件比较大众化,然而现实中很多零碎、重复的业务功能,而这些业务功能除了在不同页面中需要用到,只是数据上的不同,其行为都是一样的。

比如,一个性别选择器:

<picker-gender name=“gender” value="{{gender}}" bindchange=“genderChange”></picker-gender>

6 回复

小程序本身是基于javascript的,因此,开放自定义组件其实并非不可取。

如果你追求的不是“原生组件”,那么,用 js 实现“自定义组件”这个本来就是“开放”的呀,你自己把自己做的代码包装一下就可以算是“自定义组件”了。

如果你想要微信官方提供一个专门分享第三方自定义组件的平台,这个目前还没有,但民间已经有了,比如 http://www.wxapp-union.com/forum.php?mod=viewthread&tid=2123

换言之,一种期望的自定义组件:

# picker-gender 组件定义

```

– /components/picker-gender/index.wxml

<view>

当前值:{{value}}

请选择性别:<picker bindchange=“change”></picker>

</view>

– /components/picker-gender/index.js

Component({

    data: {},

    onLoad(options) {

        // options.value

        // options.bindchange

    },

    change(e) {

        options.bindchange();

    }

})

```

因此,在使用上:

```html

<picker-gender name=“gender” value="{{gender}}" bindchange=“genderChange”></picker-gender>

```

组件间的通信透过像 `value` 表示输入属性,`bindchange` 表示输出通知。

上面我也看过。但是我的更希望的是,对于组件的定义应该更**内聚性**的,而不是更多的*侵入性*。

如果是用现有的 WXML/WXSS 能拼出来的东西,代码上包装一下就算是“自定义组件”了。

如果说的是“自定义原生组件”,这个恐怕就比较渺茫了。

那么,能否稍微详细描述一下,你标题中的“开放”指的是什么?

回到顶部