简单了解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开发时的五个注意事项
Dec 08 Javascript
Javascript 面向对象(三)接口代码
May 23 Javascript
jQuery :first选择器使用介绍
Aug 09 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
Sep 25 Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 Javascript
让checkbox不选中即将选中的checkbox不选中
Jul 11 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
Jun 06 Javascript
详解从新建vue项目到引入组件Element的方法
Aug 29 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
Dec 24 Javascript
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
three.js 如何制作魔方
Jul 31 Javascript
v-slot和slot、slot-scope之间相互替换实例
Sep 04 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 数据库树的遍历方法
2009/02/06 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
关于layui toolbar和template的结合使用方法
2019/09/19 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
typescript配置alias的详细步骤
2020/08/12 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python列表append和+的区别浅析
2015/02/02 Python
Python中用format函数格式化字符串的用法
2015/04/08 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
python装饰器常见使用方法分析
2019/06/26 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android