简单了解vue中父子组件如何相互传递值(基础向)


Posted in Javascript onJuly 12, 2019

前言

首先,你需要知道vue中父组件和子组件分别指的是什么?

父组件:vue的根实例——用new Vue()构造函数创建的vue实例(实例会有一个挂载点,挂载点里的所有内容可理解为父组件的内容)

  简单了解vue中父子组件如何相互传递值(基础向)

这里以root为挂载点,root里包含的所有内容可称为模板,即我们常说的父组件

 简单了解vue中父子组件如何相互传递值(基础向)

子组件:用Vue.component()注册的组件(下图todo-item就是组件的名称,该名称可自定义,推荐使用短横线分隔命名)

  简单了解vue中父子组件如何相互传递值(基础向)

定义组件名的2种方式(截图截自vue官网)

简单了解vue中父子组件如何相互传递值(基础向)

注:建议在html中引用组件时(非字符串模板),组件命名都用短横线命名且字母全小写的方式

父组件向子组件传递值

父组件:通过属性的形式进行传递(比如v-bind:content="item",通过v-bind属性把item的值动态赋给content变量)

简单了解vue中父子组件如何相互传递值(基础向)

子组件:通过props接收父组件传递的值

 简单了解vue中父子组件如何相互传递值(基础向)

子组件向父组件传递值

子组件:通过$emit()方法发布事件广播

父组件:捕获到子组件向外触发的事件,然后可执行相应的方法

下图为子组件通过$emit()方法向外传递delete事件,父组件捕获到delete事件后执行handleDelete()方法

下图中methods方法里的this默认指向vue实例

不要把methods方法写成箭头函数,因为箭头函数会改变this的指向,使this不在默认指向vue实例,而指向undefined

同时vue实例中的data,computed,watch属性也都不要写成箭头函数,理由同上

简单了解vue中父子组件如何相互传递值(基础向)

注:@delete="handleDelete"为v-on:click="handleDelete"的简写;

:content="item"为v-bind:content="item"的简写

补充:怎么注册全局组件和局部组件

①:注册全局组件(用Vue.component(),组件名为todo-item,可自定义,推荐使用短横线分隔命名)

简单了解vue中父子组件如何相互传递值(基础向)

②:注册局部组件(通过一个 JavaScript 对象来定义组件)

  简单了解vue中父子组件如何相互传递值(基础向)

注册局部组件后,直接引用组件<todo-item></todo-item>会报错,提示未注册该组件

简单了解vue中父子组件如何相互传递值(基础向)

解决方法是在vue实例中用components进行声明

  简单了解vue中父子组件如何相互传递值(基础向)

注:对于components对象中的每个属性来说,其属性名就是自定义元素的名字,其属性值就是这个组件的选项对象

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript学习笔记(十)
Jan 17 Javascript
利用location.hash实现跨域iframe自适应
May 04 Javascript
JS阻止用户多次提交示例代码
Mar 26 Javascript
Javascript中的五种数据类型详解
Dec 26 Javascript
DOM基础教程之使用DOM控制表格
Jan 20 Javascript
js获取内联样式的方法
Jan 27 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
Nov 09 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
May 26 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
Feb 17 Javascript
JavaScript中最常见的三个面试题解析
Mar 04 Javascript
javascript设计模式之迭代器模式
Jan 30 Javascript
vue路由结构可设一层方便动态添加路由操作
Aug 31 Javascript
小程序实现短信登录倒计时
Jul 12 #Javascript
微信小程序简单的canvas裁剪图片功能详解
Jul 12 #Javascript
小程序实现分类页
Jul 12 #Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
Jul 12 #jQuery
小程序实现搜索框
Jun 19 #Javascript
ECharts地图绘制和钻取简易接口详解
Jul 12 #Javascript
vue cli安装使用less的教程详解
Jul 12 #Javascript
You might like
前端必学之PHP语法基础
2016/01/01 PHP
JQuery插件开发示例代码
2013/11/06 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
AngularJS HTML编译器介绍
2014/12/06 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
python实现马耳可夫链算法实例分析
2015/05/20 Python
Python正则表达式使用范例分享
2016/12/04 Python
解决Python字典写入文件出行首行有空格的问题
2017/09/27 Python
python实现图片文件批量重命名
2020/03/23 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
Pandas的Apply函数具体使用
2020/07/21 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
linux面试题参考答案(7)
2012/10/29 面试题
冰淇淋开店创业计划书
2014/02/01 职场文书
相亲大会策划方案
2014/06/05 职场文书
体育运动会广播稿
2014/10/05 职场文书
违纪学生保证书
2015/02/27 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
2015年领班工作总结
2015/04/29 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书