简单了解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 相关文章推荐
基于jquery的地址栏射击游戏代码
Mar 10 Javascript
jquery图片延迟加载 前端开发技能必备系列
Jun 18 Javascript
jQuery中:nth-child选择器用法实例
Dec 31 Javascript
JavaScript操作select元素和option的实例代码
Jan 29 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
May 23 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 Javascript
bootstrap滚动监控器使用方法解析
Jan 13 Javascript
Angular 4.x 路由快速入门学习
May 03 Javascript
js中apply和Math.max()函数的问题及区别介绍
Mar 27 Javascript
react native 仿微信聊天室实例代码
Sep 17 Javascript
js canvas实现星空连线背景特效
Nov 01 Javascript
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
小程序实现短信登录倒计时
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迭代器实现斐波纳契数列的函数
2013/11/12 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
2017/11/07 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
详解python中sort排序使用
2019/03/23 Python
python中的colorlog库使用详解
2019/07/05 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
python numpy 反转 reverse示例
2019/12/04 Python
Python ATM功能实现代码实例
2020/03/19 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
指导教师评语
2014/04/26 职场文书
公司门卫工作职责
2014/06/28 职场文书
公司车辆管理制度
2015/08/04 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
Django REST framework 限流功能的使用
2021/06/24 Python