stenciljs 学习五 事件
组件可以使用Event Emitter装饰器发送数据和事件。
Event 定义
参考:
import { Event, EventEmitter } from '@stencil/core';
...
export class TodoList {
@Event() todoCompleted: EventEmitter;
todoCompletedHandler(todo: Todo) {
this.todoCompleted.emit(todo);
}
}
监听事件(Listen)
可以监听,特定元素的事件
参考:
import { Listen } from '@stencil/core';
...
export class TodoApp {
@Listen('todoCompleted')
todoCompletedHandler(event: CustomEvent) {
console.log('Received the custom todoCompleted event: ', event.detail);
}
}
监听键盘事件
@Listen('keydown')
handleKeyDown(ev){
if(ev.keyCode === 40){
console.log('down arrow pressed')
}
}
@Listen('keydown.up')
handleUpArrow(ev){
console.log('will fire when up arrow is pressed');
}
jsx 中使用事件
import { Event, EventEmitter } from '@stencil/core';
...
export class TodoList {
@Event() todoCompleted: EventEmitter;
todoCompletedHandler(todo: Todo) {
this.todoCompleted.emit(todo);
}
}
<todo-list onTodoCompleted={ev => this.someMethod(ev)}></todo-list>
参考例子
- 子组件
import { Component,Event,EventEmitter, State} from '@stencil/core';
@Component({
tag: 'my-child-component',
styleUrl: 'my-child-component.css',
shadow: false,
scoped: false
})
export class MyChildComponent {
@Event() userClickEvent: EventEmitter;
UserClickHandler() {
this.userClickEvent.emit({name:"dalong",age:44});
}
@State() name:String="demoapp"
render(){
return (
<div>
<p onClick={_=>this.UserClickHandler()}>click</p>
<p>child component</p>
</div>
);
}
}
- 父组件
import { Component,State, Prop} from '@stencil/core';
@Component({
tag: 'my-component',
styleUrl: 'my-component.css',
shadow: false,
})
export class MyComponent {
// @Listen("userClickEvent")
// getUserClickEvent(event: CustomEvent){
// this.name=JSON.stringify(event.detail)
// }
something(event:CustomEvent){
this.name=JSON.stringify(event.detail)
}
@State() name:String="first info"
@Prop() UserID:String="rong"
render() {
return (
<div >
<p>{this.UserID}</p>
<p>{this.name}</p>
<my-child-component onUserClickEvent={env=>this.something(env)}></my-child-component>
</div>
);
}
}
- 事件绑定
使用Listen
@Listen("userClickEvent")
getUserClickEvent(event: CustomEvent){
this.name=JSON.stringify(event.detail)
}
使用jsx 绑定:
<my-child-component onUserClickEvent={env=>this.something(env)}></my-child-component>
something(event:CustomEvent){
this.name=JSON.stringify(event.detail)
}
参考资料
https://stenciljs.com/docs/events
stenciljs 学习五 事件的更多相关文章
- salesforce lightning零基础学习(五) 事件阶段(component events phase)
上一篇介绍了lightning component events的简单介绍.此篇针对上一篇进行深入,主要讲的内容为component event中的阶段(Phase). 一. 阶段(Phase)的概念 ...
- 从零开始学习jQuery (五) 事件与事件对象
本系列文章导航 从零开始学习jQuery (五) 事件与事件对象 一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解 ...
- cesium 学习(五) 加载场景模型
cesium 学习(五) 加载场景模型 一.前言 现在开始实际的看看效果,目前我所接触到基本上都是使用Cesium加载模型这个内容,以及在模型上进行操作.So,现在进行一些加载模型的学习,数据的话可以 ...
- TweenMax动画库学习(五)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
- SVG 学习<五> SVG动画
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- Android JNI学习(五)——Demo演示
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- ZigBee学习五 无线温度检测
ZigBee学习五 无线温度检测 1)修改公用头文件GenericApp.h typedef union h{ uint8 TEMP[4]; struct RFRXBUF { unsigned cha ...
- (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射
http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ...
- Vue – 基础学习(4):事件修饰符
Vue – 基础学习(3):事件修饰符
随机推荐
- windows下进程与线程剖析
进程与线程的解析 进程:一个正在运行的程序的实例,由两部分组成: 1.一个内核对象,操作系统用它来管理进程.内核对象也是系统保存进程统计信息的地方. 2.一个地址空间,其中包含所有可执行文件或DLL模 ...
- (转)RocketMQ源码学习--消息存储篇
http://www.tuicool.com/articles/umQfMzA 1.序言 今天来和大家探讨一下RocketMQ在消息存储方面所作出的努力,在介绍RocketMQ的存储模型之前,可以先探 ...
- The Architecture of Open Source Applications——阅读笔记part 1
Architects look at thousands of buildings during their training, and study critiques of those buildi ...
- 简话Angular 03 Angular内置表达式大全
一句话: 大多数html标签属性和事件都有一个对应的ng指令 说明:这些指令和原生html最大的区别就是可以动态更新.比如一个div的样式用ng-class后,我们就可以随意应用css class. ...
- window8服务器
安装PHP集成环境:XAMPP cmd下查看端口号: 如果直接输入netstat -nao 报不是内部指令的处理方法: c:\WINDOWS\system32\netstat -nao 就可以了. w ...
- 快速切题 cf118A
这教导人们一定要看题,要看题,元音包含了‘y’,完毕,要看题啊 #include <cstring> #include <cstdio> #include <cctype ...
- L1-035 情人节
以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家.第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”.现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋. 输入格式: ...
- DevExpress v17.2新版亮点—.NET Reporting篇(一)
用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了.NET Reporting v17.2 的新功能,快来下载试用新版本! All ...
- firefox下reset()不好使的问题
最近在测试项目时发现,在firefox下,form.reset()方法对于隐藏的<input>等不起效果,导致程序中出现了错误,以下面为例: js代码: document.agentFor ...
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<2,下载彩信>)
彩信的接收简介: 主要是由应用程序负责从彩信服务中心(MMSC Multimedia Messaging Service Center)下载彩信信息.大致的流程是Frameworks会先发出一条短信, ...