快应用---事件监听与触发

一、快应用

        1、快应用是基于手机硬件平台的新型应用形态,标准是由主流手机厂商组成的快应用联盟联合制定;

        2、快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台,以平台化的生态模式对个人开发者和企业开发者全品类开放;

        3、快应用具备传统APP完整的应用体验,无需安装,即点即用;

                               

二、接下来只是整理了我认为重要的内容(加强记忆),具体内容请看官网;

        1)事件监听与触发

           A)    $on(evtName,fnHandler);

           在当前页面注册监听事件,可监听$emit()、$dispatch()、$broadcast()等触发的自定义事件,不能用于注册组件节点的事件响应;

           例如:

            this.$on('customEvtType',this.customEvtTypeHandler);

            customEvtTypeHandler(evt){

                    console.info(`触发事件:类型${evt.type},参数:${JSON.stringify(evt.detail)}`)

            }

       

           B)  $off(evtName,fnHandler)

           移除事件监听,参数fnHandler为可选,传递仅移除指定的响应函数,不传递则移除此事件的所有监听

           

           C) $emit(evtName,evtDetail)

           触发当前实例监听事件函数,与$on()配合使用;注意:$emit()目前只触发$on 所监听的事件

           this.$emit('customEvtType',{params:'参数内容'})

      

            D)监听原生组件事件

            原生组件支持一系列事件,如通用事件(如:click,disappear)、组件专有事件(如:focus);

            很多开发者希望能够在事件回调函数中,获取到当前触发事件的组件信息并进行进一步操作,

             1)在响应函数执行时通过target获取,如:

                 onClickHandler(evt){

                        console.info(`触发事件类型:${evt.type},详情:${JSON.stringify(evt.detail)}`);

                        if(evt.target){

                               console.info(`触发事件节点:${evt.target.id},${evt.target.attr.disabled}`);

                         }

                 }

             2)在响应函数绑定时传递参数,如:

              onClickHandler2(arg1,arg2,evt){

                      console.info(`触发事件类型:${evt.type},参数:${arg1},${arg2}`);

              }

           E)除了用户手动操作触发事件,响应回调之外,开发者开通在代码中通过$emitElement()完成事件的动态触发;

             $emitElement(evtName,evtDetail,id)可以触发指定组件id的事件,通过evt.detail获取传递的参数;该方法对自定义组件无效

              例如:

                <text onclick="emitElement">触发组件节点中的事件:click</text>

               emitElement(){

                     this.$emitElement('click',{params:'参数内容'},'eNode');

              }

             F)使用原生组件的冒泡功能

              我们在1040+版本对某些通用事件开放冒泡功能;

              在未支持冒泡功能之前,开发者仅可以使用target属性指向事件触发的节点;

              在已支持冒泡功能之后,开发者可以同时使用target与currentTarget,具体的指向与web规范保持一致;前者指向事件目标节点,后者指向事件触发节点;

              为了兼容已经发布的快应用,以上更新,需要开发者在manifest.json中将minPlatformVersion设置为1040或以上,请开发者注意区别,做好向后兼容;

          

猜你喜欢

转载自www.cnblogs.com/sunqq/p/11202663.html
今日推荐