当前位置: 首页 > news >正文

郑州网站建设最便宜网校平台搭建

郑州网站建设最便宜,网校平台搭建,开发网页游戏平台,百度h5下载1. 自定义事件 除了可以处理原生的DOM事件, v-on指令也可以处理组件内部触发的自定义的事件,调用this.$emit()函数就可以触发一个自定义事件 $emit() 触发事件函数接受一个自定义事件的事件名以及其他任何给事件函数传递的参数. 然后就可以在组件上使用v-on来绑定这个自定义事…

1. 自定义事件

除了可以处理原生的DOM事件, v-on指令也可以处理组件内部触发的自定义的事件,调用this.$emit()函数就可以触发一个自定义事件

$emit() 触发事件函数接受一个自定义事件的事件名以及其他任何给事件函数传递的参数. 然后就可以在组件上使用v-on来绑定这个自定义事件

{methods: {handleClick(){this.clicks++this.$emit("count",this.clicks )}}
}

所以我们就可以利用自定事件来处理子组件触发父组件数据的更改和向父组件传值


2. 子组件触发父组件数据的改变

通过父组件向子组件传值的学习,我们已经知道了Vue是单向下行数据流, 子组件更改props中的数据不会触发父组件数据的改变, 但是由于响应式原理,父组件数据的改变会导致子组件props中值的改变

那么我们怎样才能在子组件中改变显示的结果呢.

思路:

  1. 子组件中没法更改父组件中的数据,那么我们就让父组件自己的函数改自己的数据
  2. 如何在子组件中触发父组件中的函数呢, 就可以通过自定义事件
  3. 子组件在函数中触发自定义事件, 将父组件中更改数据的函数绑定为自定义事件的函数
  4. 然后父组件中的数据一变,因为响应式,所以子组件中的数据会自动改变

示例代码如下:

<div id="app"><!-- 使用组件 --><!-- 3.在子组件中绑定自定义事件, 将父组件的方法绑定为自定义事件的处理函数--><my-component :clicks="clicks" @count="handleParentClick"></my-component></div><!-- 组件模板 -->
<template id="MyComponent"><div>被点击了{{clicks}}次<!-- 1. 子组件通过原生click事件触发子组件自己的函数 --><button @click="handleClick">点击</button></div>
</template><script>//  组件选项对象let MyComponent = {props:["clicks"],template: `#MyComponent`,methods:{handleClick(){// 2.子组件函数中触发自定义事件this.$emit("count")}}}//  实例中注册组件const vm = new Vue({el:"#app",data: {clicks:0},components: {"MyComponent": MyComponent},methods:{handleParentClick(){// 4. 在父组件函数中修改父组件中的数据this.clicks++}}})
</script>

示例结果

子组件通过自定义事件改变父组件数据.png

最后父组件数据一变,子组件显示结果自然变化

我们也知道$emit方法在触发自定义事件的时候,还可以给自定义事件传参, 这样就可以实现子组件向父组件传参


3. 子组件向父组件传参

上一小节,我们是在子组件中通过自定义事件触发父组件中的函数, 在父组件中修改数据,

同样我们也可以在子组件中修改数据,然后将修改后的数据通过自定义事件传参的方式,传递给父组件函数,在父组件函数中直接用子组件传过来修改后的数据直接替换父组件中的数据

示例代码如下:

<div id="app"><!-- 使用组件 --><!-- 3.在子组件中绑定自定义事件, 将父组件的方法绑定为自定义事件的处理函数--><my-component :clicks="clicks" @count="handleParentClick"></my-component>
</div><!-- 组件模板 -->
<template id="MyComponent"><div>被点击了{{clicks}}次<!-- 1. 子组件通过原生click事件触发子组件自己的函数 --><button @click="handleClick">点击</button></div>
</template><script>//  组件选项对象let MyComponent = {props:["clicks"],template: `#MyComponent`,data(){return {count: this.clicks}},methods:{handleClick(){// 2.子子组件函数中触发自定义事件// 2.1 在触发自定义事件的时候向自定事件传参this.count+=2this.$emit("count",this.count)}}}//  实例中注册组件const vm = new Vue({el:"#app",data: {clicks:0},components: {"MyComponent": MyComponent},methods:{handleParentClick(count){// 4. 在父组件函数中修改父组件中的数据// 4.1 接受自定义事件触发时传递的参数console.log(count)this.clicks = count}}})</script>
http://www.yayakq.cn/news/922465/

相关文章:

  • 实名网站空间哪里买wordpress如何访问
  • 网站开发如何引用函数在上海做钟点工的网站
  • 风云办公ppt模板网站app做好了网站怎么做
  • 用asp做网站需要准备什么软件wordpress图片上加文字
  • 四川成都营销型网站重庆在建工程项目
  • 示范校建设信息化成果网站平面图怎么画
  • 商务网站建设是什么做视频的素材网站
  • 上海市建设安全协会网站特种工网站运营商查询
  • 公司网站可以分两个域名做吗数字重庆公司
  • 萍乡土建设计网站请写出网站建设的整个过程
  • 建立网站目录的意义可以做仿牌网站
  • 企业建立网站做pc端网站报价
  • 网站开发和运行 法律网站设计师工资一般多少
  • 网站建设与开发定制开发商逾期交房可以申请退房吗
  • 宁波品牌网站制作哪家好腾讯企业邮箱登录入口二维码
  • 音乐网站开发文档撰写模板嘉兴小程序开发公司
  • 网站建设外包 源代码网站之家查询
  • 邯郸网站建设费用中学生旅游网站开发的论文怎么写
  • 大力推进网站集约化建设wordpress模块化主题
  • 免费的游戏网站建设安全的网站制作公司
  • 网站收录提交接口wordpress标签数据库
  • 好的网站建设重庆航运建设发展有限公司网站
  • 加强公司窗口网站建设镇江市机关效能与作风建设网站
  • 建设一个网站论坛要多少钱襄城县做网站的
  • 湖北专业网站建设产品介绍白熊阅读做网站架构
  • 网站设计方案模板商城网站建设视频教程
  • 职业生涯规划大赛成长赛道网站关键词优化软件
  • 如何查询网站域名备案信息免费的网站推广
  • 排名前十的网站上海市嘉定建设局网站
  • 做字体网站东莞常平中学录取分数线2022