5. 使用 slot
// 页面
< Test> < view> 自定义内容</ view>
</ Test> // 组件
< view> < view> 前面的内容</ view> < slot> </ slot> < view> 后面的内容</ view>
</ view>
// 页面
<Test><view slot='n1'>自定义内容1</view><view slot='n2'>自定义内容2</view>
</Test>// 组件
<view><slot name='n1'></slot><slot name='n2'></slot>
</view>
Component ( { options: { multipleSlots: true } , ... . .
}
vue => 页面组件 获取数据 ajax => 公共组件 复用的ui模块小程序 => 页面 获取数据 ajax (很多钩子好好学习) ★=> 组件 复用的ui模块
6. 定义段与示例方法
Component
构造器可用于定义组件,调用Component
构造器时可以指定组件的属性、数据、方法等。
定义段 类型 是否必填 描述 properties(★) Object Map 否 组件的对外属性,是属性名到属性设置的映射表,参见下文 data(★) Object 否 组件的内部数据,和 properties
一同用于组件的模板渲染 observers(★) Object 否 组件数据字段监听器,用于监听 properties 和 data 的变化,类似vue里面的 watch methods(★) Object 否 组件的方法,包括事件响应函数和任意的自定义方法,关于事件响应函数的使用,参见 组件事件 created Function 否 组件生命周期函数,在组件实例刚刚被创建时执行,注意此时不能调用 setData
,参见 组件生命周期 attached(★) Function 否 组件生命周期函数,在组件实例进入页面节点树时执行,参见 组件生命周期 ready Function 否 组件生命周期函数,在组件布局完成后执行,参见 组件生命周期 moved Function 否 组件生命周期函数,在组件实例被移动到节点树另一个位置时执行,参见 组件生命周期 detached Function 否 组件生命周期函数,在组件实例被从页面节点树移除时执行,参见 组件生命周期
observers : { name ( newVal) { console. log ( '新值' , newVal) } , obj ( newVal) { console. log ( '新值obj' , newVal) } , 'obj.num' ( newVal) { console. log ( '新值obj的num' , newVal) } } , const { obj } = this . dataobj. num = 100 this . setData ( { name : '大马哥' , obj, } )
7. 组件通信
父传子 : 父组件通过属性传递给子组件数据 子传父 : 子组件通过事件传递给父组件数据
7.1 父传子
< Test msg= '父的数据' > < / Test>
properties: { msg : String, msg: { type: String, value: '' } } ,
< view> 父传子 : { { msg } } < / view>
attached ( ) { console. log ( 123 , this . properties. msg) }
7.2 子传父
myTap ( e) { console. log ( '父的方法:' , e. detail) }
< Test bindmytap= 'myTap' > < / Test> methods: { fn ( ) { this . triggerEvent ( 'mytap' , '子的数据' ) } } ,
7.3 命名规则
"usingComponents" : { "nav-header" : "/components/NavHeader/NavHeader"
}
< nav- header> < / nav- header>
< my- component> < / my- component>
< nav-header prop-a = ' aa' prop-b = ' bb' > </ nav-header>
< my-component my-class = ' cls' > </ my-component>
小程序生命周期
1. 应用生命周期
属性 类型 默认值 必填 说明 onLaunch function 否 监听小程序初始化。 onShow function 否 监听小程序启动或切前台。 onHide function 否 监听小程序切后台。 onError function 否 错误监听函数。 onPageNotFound function 否 页面不存在监听函数。
App ( { onLaunch ( ) { console. log ( 'onLaunch' ) } , onShow ( ) { console. log ( 'onShow' ) } , onHide ( ) { console. log ( 'onHide' ) } , onError ( err) { } , onPageNotFound ( err) { console. log ( '找不到页面' , err) }
} )
2. 页面生命周期
属性 类型 说明 data Object 页面的初始数据 onLoad function 生命周期回调—监听页面加载 onShow function 生命周期回调—监听页面显示 onReady function 生命周期回调—监听页面初次渲染完成 onHide function 生命周期回调—监听页面隐藏 onUnload function 生命周期回调—监听页面卸载 onPullDownRefresh function 监听用户下拉动作 onReachBottom function 页面上拉触底事件的处理函数 onShareAppMessage function 用户点击右上角转发 onPageScroll function 页面滚动触发事件的处理函数 onResize function 页面尺寸改变时触发,详见 响应显示区域变化 onTabItemTap function 当前是 tab 页时,点击 tab 时触发
Page ( { onLoad: function ( options) { } , onShow: function ( ) { } , onReady: function ( ) { } , onHide: function ( ) { } , onUnload: function ( ) { wx. redirectTo ( { url: '/pages/one/one' } ) } , onPullDownRefresh: function ( ) { } , onReachBottom: function ( ) { } , onShareAppMessage: function ( ) { } , onPageScroll ( e) { console. log ( e. scrollTop) } , onResize ( ) { console. log ( '尺寸变化了' ) } , onTabItemTap ( res) { }
} )