Cpage.js组件之间事件传播
来源:互联网 发布:squid 监听多个端口 编辑:程序博客网 时间:2024/06/04 18:44
本文主要讲解Cpage.js组件之间事件传播的方法。
传送门:demo
在开发过程中,不同组件之间交互是常有的事情,而实现的方法有多种,可以通过props属性传值,也可以通过pub,sub事件订阅的方式。Cpage.js组件可以通过props传值,并且自带事件传播机制。
首先,需要一个用于渲染组件的节点
<div id="app"></div>
然后引入js
<script type="text/javascript" src="../../cpage/1.0.3/Cpage-1.0.3.min.js"></script>
现在开始开发组件!
第一步,注册组件并将其渲染到节点。
首先注册一个hello组件
var hello = Cpage.component({ name: 'hello', template: ` <div> <h1>组件之间事件传播</h1> </div> `, handelClick(){ }, render(){ }});
再注册一个根组件。
var myApp = Cpage.component({ name: 'myApp', components: [hello], template: ` <hello></hello> `, render(){ this.$event.listen('hello-event', function(msg){ alert(msg) }); }});
将组件渲染到dom节点,需要用到函数bootstrap
Cpage.bootstrap("#app", myApp);
刷新页面,让我们看下展示效果
现在,给元素绑定点击事件,在函数体内触发事件。
这里需要用到Cpage.js内置的$event属性 。this.$event.trigger(事件名, 信息);
var hello = Cpage.component({ name: 'hello', template: ` <div> <h1 c-click="handelClick()">组件之间事件传播</h1> </div> `, handelClick(){ this.$event.trigger('hello-event', 'helloMsg'); }, render(){ }});
这时候点击元素是无效的,需要在其他组件内监听事件传播,可以在根组件的render()方法里面处理。this.$event.listen(“事件名”, “回调函数”)。此时回调函数的参数即为trigger()函数传递的值。
var myApp = Cpage.component({ name: 'myApp', components: [hello], template: ` <hello></hello> `, render(){ this.$event.listen('hello-event', function(msg){ alert(msg) }); }});
点击元素,会看到一下结果
基本的处理方式已经掌握,现在我们来做一个交互效果:点击hello组件,改变其父组件的内容。
更新根组件的template模板
template: ` <hello></hello> <div>{{text}}</div>`,
在data属性里添加数据
data: { text: 'render...'},
效果如下:
最后要做的是点击元素后修改text属性的值,
用到Cpage.js内置的$data方法,this.$data("属性", "值")
var self = this;this.$event.listen('hello-event', function(msg){ self.$data('text', 'changed...');});
此时点击元素,看到text属性值已经改变
阅读全文
0 0
- Cpage.js组件之间事件传播
- Cpage.js给组件绑定事件
- Cpage.js列表渲染
- JS 传播事件、取消事件默认行为、阻止事件传播
- js 如何阻止事件传播
- js阻止冒泡事件继续传播
- JS中stopPropagation函数停止事件传播
- JS事件传播-冒泡和捕获
- js里的事件传播--冒泡
- [js点滴]JavaScript事件传播02
- JS阻止事件的传播行为
- JS中的事件传播和默认事件取消
- js 阻断事件传播及阻止默认事件
- 事件传播
- Cpage.js,一款轻盈的前端MVVM框架
- React 组件之间 事件调用(父组件调用子组件)
- React 组件之间 事件调用(子组件调用父亲组件)
- js事件对象兼容处理及传播机制
- 利用网络资源撸一个Android源码查看器出来
- 【安卓】安卓集成魔窗-完整实例
- 游标
- voip 名词解释 Qos,VAD,AEC,AGC,CNG ,AEC,AGC
- 【Cocos2d-x】Cocos2d-x精灵的性能优化
- Cpage.js组件之间事件传播
- 链表带环的问题研究及代码实现
- 最近产生的一些职业病
- jsp中输入框值变化的监听
- php基础
- 1th 整数 罗马数 转换
- 怎样理解rem
- JVM垃圾收集器与内存分配策略
- Keil创建ARM芯片程序工程