组件事件

1. 定义事件 onClick();
2. 注册事件句柄
3. 触发事件

[php]
public function onClicked($event)
{$this->raiseEvent('onClicked', $event);
}这里作为事件参数的 $event 是 [CEvent] 或其子类的实例。我们可以附加一个方法到此 event,如下所示:[php]
$component->onClicked=$callback;这里的 $callback 指向了一个有效的 PHP 回调。它可以是一个全局函数也可以是类中的一个方法。
如果是后者,它必须以一个数组的方式提供: array($object,'methodName').
事件句柄的结构如下:[php]
function methodName($event)
{......
}这里的 $event 即描述事件的参数(它来源于 raiseEvent() 调用)。$event 参数是 [CEvent] 或其子类的实例。
至少,它包含了关于谁触发了此事件的信息。从版本 1.0.10 开始,事件句柄也可以是一个PHP 5.3以后支持的匿名函数。例如[php]
$component->onClicked=function($event) {......
}如果我们现在调用 onClicked(),onClicked 事件将被触发(在 onClicked() 中), 附属的事件句柄将被自动调用。一个事件可以绑定多个句柄。当事件触发时, 这些句柄将被按照它们绑定到事件时的顺序依次执行。
如果句柄决定组织后续句柄被执行,它可以设置 [$event->handled|CEvent::handled] 为 true


示例:
1.事件的定义:

2.注册事件句柄

$app = Yii::createWebApplication($config);$app->onBeginRequest = function($event){$msg = print_r($event,true);file_put_contents(dirname(YII_PATH).'/test.txt',$msg);
};$app->run();

3.触发事件:

结果:


原理分析:

Event中往往有两个角色,一个是Event,一个是Event Handler。为什么需要两个?原因很容易理解,Event只是说明这件事情发生了,但是没有说怎么处理。这部分处理的工作当然是留给了Event Handler了。1.在Yii中Event一般是在CComponet的子类中扩展出来的,一般以on开头。public function onClick($event)  {  $this->raiseEvent('onClick',$event);  }  上面是一段例子,用来定义Event的。但是你要注意这里的$event可不是我们前面说的Event,而应该说$event和这个onClick函数整体构成了一个Event,其实这也很容易理解,因为一个Event的构成需要一个标志说明Event发生,还需要一些数据来说明这个Event发生时的情况。

Event Handle 存放到 $this->_e[$eventName] = EventHandle 中。
EventHandle  是一个 CList 类。

调用时






http://www.yiichina.com/doc/guide/1.1/basics.component

http://www.phpstudio.info/show-155-1293-1.html

http://blog.csdn.net/chengfei112233/article/details/7659768

http://stackoverflow.com/questions/7410045/how-to-use-events-in-yii

http://zhangxugg-163-com.iteye.com/blog/1830229

http://www.tuicool.com/articles/7vamYb

23. Yii 组件事件相关推荐

  1. Blazor University (6)组件 — 组件事件

    原文链接:https://blazor-university.com/components/component-events/ 组件事件 源代码[1] EventCallback<T> 类 ...

  2. react如何在父组件中调用子组件事件

    父组件是如何使用子组件的事件的,下边数值累加的例子 类组件 将子组件的this传到父组件,给父组件添加一个属性,值为this,之后就可以通过父组件的属性调用子组件的事件了 import React,{ ...

  3. React组件-事件、状态和生命周期

    组件状态 事件 (事件名大写) 注意:组件事件需要配合状态,所以现在无法呈现效果 class Cmp1 extends React.Component{constructor(...args){sup ...

  4. 学习vue3组件事件时,思维发散(溜号)的感悟

    组件事件 | Vue.js 老婆在客厅看,英文.日文影片(或动漫) 我就溜号了,想起英文发音和日文发音(包括中文发音)的差异,英文断续而短促的元音对收听者有积累效应,但积累的不仅仅是语调的变化,也包含 ...

  5. Vue.js 之 组件-监听子组件事件

    1.监听子组件事件 前面介绍了父组件如何通过 prop 向子组件传递数据,反过来,子组件如何向父组件通信呢? 在 Vue.js 中,这是通过自定义事件来实现的,子组件使用 $emit() 方法触发事件 ...

  6. 清晰理解Yii的事件和行为

    编程也许真的是个技术活,每次你被概念搞的蒙头转向,无从下手的时候你也许会这么想.但这也就是一会会的事,如果你在晚上喝着茶,咬着牙,僵硬着脖子,一页一页的点百度,然后在笔记上一句话一句话的记下你看到的每 ...

  7. vue3的组件事件和defineEmits

    文章目录 1. 事件基础 示例 Blog.vue BlogPost.vue 2. 触发与监听事件 2.1 触发事件 2.2 监听事件 3. 事件参数 3.1 示例1 Blog.vue BlogPost ...

  8. 微信小程序自定义组件事件跨越组件边界

    如果自定义组件事件需跨越组件边界,进入其他任何组件内部时,需开启bubbles和composed属性 事件分为冒泡事件和非冒泡事件: 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递. 非冒 ...

  9. Ant Design Pro 组件事件绑定 Input onChange

    Input 组件的 onChange 事件绑定语法 render() {this.shop_change = e => {const { value } = e.target;console.l ...

  10. Java 基础【04】Swing 组件事件注册

    聪明出于勤奋,天才在于积累.--华罗庚 对上次的三个问题的个人理解: 1) 程序首先是从main函数开始执行的,假设main 函数不是 static ,就要先实例化这个类,然后调用 main 方法,这 ...

最新文章

  1. javascript之实现bind
  2. torch yolov3训练性能优化
  3. linq语句复杂查询和分开查询的性能对比
  4. 【VAB】获取库文件地址
  5. React开发(150):判断方法有避免报错
  6. daad转换器实验数据_箔芯片电阻在高温应用A/D转换器中的应用
  7. 作者:郭绍光(1985-),男,中国科学院上海天文台工程师
  8. 非泄露,NSA官方开源反汇编工具GHIDRA
  9. Linux —— 常见指令及其英文全称
  10. 伺服电机算功率基本公式_伺服电机选型通用计算公式
  11. 领域的初学者--推荐的一本书
  12. python 服务器后台运行
  13. 1亿年轻人在Soul找到社交新选择
  14. 计算机试卷分析与反思,试卷分析及教学反思
  15. java毕业设计——基于java+mysql+socket的即时通讯软件设计与实现(毕业论文+程序源码)——即时通讯软件
  16. python 布尔值取反_如何在Python中获得布尔值的相反(否定)?
  17. 2.5导入和混合配置 P61 Spring实战 第四版
  18. 360屏保广告彻底关闭教程
  19. 计算机硬件数据统计实验报告,实验二数据统计01
  20. SDN 实验室学生们

热门文章

  1. WinForm sender初级应用
  2. 2012/7/26给Extjs grid中的列自定义渲染方式
  3. 菜鸟也要懂点设计模式|用Python设计一个请假模式
  4. 如何优雅地计算多变量
  5. linux修改环境截图,Linux环境下php实现给网站截图的方法.docx
  6. Flutter实战视频-移动电商-18.首页_火爆专区后台接口调试
  7. 【LeetCode 剑指offer刷题】树题9:34 二叉树中和为某一值的路径(112. Path Sum)...
  8. Codeforces Round #461 (Div. 2)B-Magic Forest+位运算或优雅的暴力
  9. 函数, lambda表达式
  10. 串口发送字符串到串口软件