@tpls/wxapp-component
Version:
template for jscli
70 lines (59 loc) • 1.93 kB
JavaScript
import { baseComponent } from '@xmini/wxapp-component-base/index';
// 数据从外层传入
baseComponent({
// 以下数据未参考
props: {
hidden: Boolean, // 简化的定义方式
duration: {
type: [Number, Object],
value: 300
},
// 属性名
cityList: {
// 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
type: Array,
// 属性初始值(可选),如果未指定则会根据类型选择一个
value: [],
// 属性被改变时执行的函数(可选),也可以写成在methods段中定义的方法名字符串, 如:'_propertyChange'
// 通常 newVal 就是新设置的数据, oldVal 是旧数据
observer: function(newVal, oldVal, changedPath) {
},
},
},
data: {}, // 私有数据,可用于模板渲染
lifetimes: {
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
attached: function () { },
moved: function () { },
detached: function () { },
},
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
// 此处attached的声明会被lifetimes字段中的声明覆盖
attached: function () { },
ready: function() { },
pageLifetimes: {
// 组件所在页面的生命周期函数
show: function () { },
hide: function () { },
resize: function () { },
},
methods: {
onClick() {
this.$emit('click');
},
onSelect: function(){
// 更新属性和数据的方法与更新页面数据的方法类似
this.setData({
});
},
// 内部方法建议以下划线开头
_myPrivateMethod: function(){
// 这里将 data.A[0].B 设为 'myPrivateData'
this.setData({
'A[0].B': 'myPrivateData'
})
},
_propertyChange: function(newVal, oldVal) {
},
},
});