11.5 Vue day06 父子组件通信、自定义事件
props父子通信
props (写在子组件) 通过父组件给子组件传递函数类型的props实现:子给父传递数据
子传父 1.父组件定义一个方法,再通过子组件标签通知子组件,
2.子组件props,然后再使用该方法,通过该方法的参数通知父组件
子传父图
1.
2.
注意数据在哪个组件,在那里修改数据
总结TodoList案例
组件化编码流程:
(1).拆分静态组件:组件要按照功能点拆分,命名不要与html元素冲突。
(2).实现动态组件:考虑好数据的存放位置,数据是一个组件在用,还是一些组件在用:
1).一个组件在用:放在组件自身即可。
2). 一些组件在用:放在他们共同的父组件上(状态提升)。
(3).实现交互:从绑定事件开始。
props适用于:
(1).父组件 ==> 子组件 通信
(2).子组件 ==> 父组件 通信(要求父先给子一个函数)
使用v-model时要切记:v-model绑定的值不能是props传过来的值,因为props是不可以修改的!
props传过来的若是对象类型的值,修改对象中的属性时Vue不会报错,但不推荐这样做。
localStorage方法
1.window.localStorage.setItem("key","value")
2.window.localStorage.getItem("key")
3.window.localStorage.removeItem("key")
4.window.localStorage.clear()
sessionStorage方法与localStorage一样,当关闭浏览器会清空
自定义事件
一种组件间通信的方式,适用于:子组件 ===> 父组件
使用场景:A是父组件,B是子组件,B想给A传数据,那么就要在A中给B绑定自定义事件(事件的回调在A中)。
绑定自定义事件:
第一种方式,在父组件中:
<Demo @atguigu="test"/>
或<Demo v-on:atguigu="test"/>
第二种方式,在父组件中:
<Demo ref="demo"/> ...... mounted(){this.$refs.xxx.$on('atguigu',this.test) }
若想让自定义事件只能触发一次,可以使用
once
修饰符,或$once
方法。
触发自定义事件:
this.$emit('atguigu',数据)
解绑自定义事件
this.$off('atguigu')
组件上也可以绑定原生DOM事件,需要使用
native
修饰符。注意:通过
this.$refs.xxx.$on('atguigu',回调)
绑定自定义事件时,回调要么配置在methods中,要么用箭头函数,否则this指向会出问题!
自定义事件 子组件传递父组件数据方法1
1)父组件中在School标签绑定atguigu事件,该事件绑定回调函数getSchoolName
<School v-on:atguigu="getSchoolName" @add="addNumber"/>
2)在父组件中定义好回调函数
3)子组件School定义触发函数
4)子组件中 让该函数触发事件(atguigu)
自定义事件 子组件传递父组件数据方法2
1)父组件中的子组件标签定义ref属性“getSchool”
2)在挂载函数通过refs方法把atguigu挂载在School的vc上,并定义回调函数
3)子组件School定义触发函数 并通过触发函数触发atguigu事件
11.5 Vue day06 父子组件通信、自定义事件相关推荐
- Vue.js 父子组件通信的十种方式;告诉世界前端也能做 AI;你可能不知道的14个JavaScript调试技巧...
记得点击文章末尾的"阅读原文"查看哟~ 下面先一起看下本周的摘要吧~ 想了解老用户如何参与阿里云双十一1折拼团特惠主机的,可以看第二条推送,文中提供了两种方法~,一起看看本周有哪些 ...
- Vue 非父子组件通信方案
Vue 非父子组件通信方案 概述 在 Vue 中模块间的通信很普遍 如果是单纯的父子组件间传递信息,父组件可以使用 props 将数据向下传递到子组件,而在子组件中可以使用 events (父组件需要 ...
- Vue 非父子组件通信 (ref)
Vue 非父子组件通信 (ref) 流程:1. 先在son子组件中定义一个数据和事件处理程序data( ) { return { flag: false }} , methods: { cry( ) ...
- Vue的父子组件通信(十种)
设计的面试题 Vue中父子组件通信有哪些方式? 概述 通信方式无外乎就那几种: Prop 常用$emit 组件封装用的较多.sync 语法糖 (较少)$attrs和$listeners(组件封装用的较 ...
- html中的父子通信代码,Vue.js 父子组件通信的十种方式
面试官:Vue 中父子组件通信有哪些方式? 自己先想一分钟. 无可否认,现在无论大厂还是小厂都已经用上了 Vue.js 框架,简单易上手不说,教程详尽,社区活跃,第三方套件还多.真的是前端开发人员必备 ...
- vue的父子组件通信
父子组件通信: 1.父组件向子组件传递数据,子组件可以使用 props 接收父组件的数据 2.子组件可以使用this.$emit触发父组件的自定义事件 父组件通过props向子组件传递数据 第一步:需 ...
- VUE非父子组件通信
非父子组件通信 vue非父子组件传值方式,本文章整理了两种方式:vuex和总线bus.vuex相比于总线bus来说非常的稳定,推荐直接使用vuex. 我看其他的文章基本上是[点击导航栏回退的时候,去获 ...
- Vue 非父子组件通信
前面的话 在实际业务中,除了父子通信外,还有很多非父子组件通信的场景,非父子组件一般有两种,兄弟组件和跨多级组件.Vue.js 2.x中,使用一个空的Vue实例作为中央事件总线(bus). 中央事件总 ...
- 【Vue】父子组件通信
[Vue]父子组件通信 前言 父组件向子组件传值 法一: props 法二: $parent 子组件向父组件传值 $emit $emit + .sync $refs v-model 前言
最新文章
- java 类名重复_更快地重复访问Java的Java类名?
- shell连接mysql
- 线段树之单点更新,区域求和
- 从压缩文件将数据导入SQL Server
- 调整oracle数据库编码
- oracle应用技术期末考试,Oracle数据库应用技术
- 2015C蓝桥杯C++A:格子中输出(详细讲解)
- 路过秋天版博客 V2.0 正式版发布 增加后台管理系统[支持多语言、多用户、多数据库、目录级URL]...
- linux ffmpeg插件,Linux FFmpeg(含x264、lame插件)安装记录
- java 判断 string null_java 字符串为null 如何判断
- 数据库查询简单练习(五)
- Python数据可视化:线型、Marker、简单折线图、多柱状图、基本饼形图与嵌套饼形图
- 首个AI公园探秘:身高体重一秒被曝,大爷大妈坐无人车玩疯了
- STC12C5A60S2单片机驱动超声波
- 让电脑键盘L键变成锁定计算机怎么办,教你电脑键盘按键错乱怎么恢复
- imx6 android4.4 Recovery添加从U盘升级功能
- WinX DVD Ripper for Mac(DVD视频格式转换工具)
- 2022年度安徽省职业院校技能大赛中职组“网络搭建与应用”赛项竞赛试题
- sunday算法简介
- python求excel平均值_python帮助计算excel文件上的平均值和std