简述vue中父子组件是怎样相互传递值的(基础向)

tu-0718 2019-07-12 原文

简述vue中父子组件是怎样相互传递值的(基础向)

 

  前言

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

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

        

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

       

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

       

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

         

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

 

 

  父组件向子组件传递值

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

      

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

       

 

 

  子组件向父组件传递值

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

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

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

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

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

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

     

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

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

    

 

 

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

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

       

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

        

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

     

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

        

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

发表于 2019-07-12 11:21 你不知道的巨蟹 阅读() 评论() 编辑 收藏

 

版权声明:本文为tu-0718原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/tu-0718/p/11158971.html

简述vue中父子组件是怎样相互传递值的(基础向)的更多相关文章

  1. Vue项目搭建(NPM方式)

    Vue项目搭建(NPM方式) 一、安装前说明 环境依赖:node.js; vue官方脚手架:vue-cli; […]...

  2. vue Router——基础篇

    vue——Router简介 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适 […]...

  3. Vue与Element走过的坑。。。。带上Axios

    1.Axios中post传参数组(java后端接收数组) 虽然源数据本身就是数组,但是传参时会自动变成key: […]...

  4. JavaScript数组的几个常用的API

    一、 扁平化嵌套数组/展平和阵列孔——flat() 1、实现效果 var arr1 = [1, 2, [3, […]...

  5. Vue+axios统一接口管理

    通过axios请求接口已经很简单了,但最近在做一个vue项目,想着把axios请求再封装一下,这样api就可以 […]...

  6. vue.js层叠轮播

    最近写公司项目有涉及到轮播banner,一般的ui框架无法满足产品需求;所以自己写了一个层叠式轮播组件;现在分 […]...

  7. 一张思维导图辅助你深入了解 Vue | Vue-Router | Vuex 源码架构

    1.前言 本文内容讲解的内容:一张思维导图辅助你深入了解 Vue | Vue-Router | Vuex 源码 […]...

  8. vue初级知识总结

    从我第一篇博客的搭建环境开始,就开始学习vue了,一直想将这些基本知识点整理出来,但是一直不知如何下手,今天刚 […]...

随机推荐

  1. SURF matlab 检测函数使用 – 悟江居士

    SURF matlab 检测函数使用 1.这篇介绍SURF检测blob的函数。 函数/Functions 函数 […]...

  2. BOSS系统介绍

    BOSS系统 百科名片 是Business & Operation Support System的简称 […]...

  3. nginx-nagios-pnp4nagios-nrpe安装配置过程

    一 安装PHP(version 5.3.13),使得PHP支持png,jpeg,freetype,t1lib, […]...

  4. 记一次 WPS Pro 2019 设备和驱动器图标删除

    1.图标预览 先看样式 2.软件不能关闭 百度和腾讯网盘都会创建,但是可以软件关闭,WPS以前也可以,现在新版 […]...

  5. SQL多表关联查询

        在创建关系型数据表时,根据数据库范式的要求,为了降低数据的冗余,提供数据维护的灵活性 将数据分成多个表 […]...

  6. 各类搜索网站

    平常经常会搜索很多各式各样的东西,Google有时候未必能找到或者需要费很大力气去找,这个时候有一些专门的搜索 […]...

  7. Visual Studio 2008提高工作效率的小技巧

    时间往往在不经意间就浪费掉了,比如我们在寻找上一个光标位置的时候,好好学习并利用下面的技巧,会提高工作效率,减 […]...

  8. 这篇Java基础快速入门学习教程,让我至少少走3个月弯路

    作为刚刚接触java的小白,今天这篇文章的目的是帮助大家快速入门java,少走弯路 如何快速入门Java? 一 […]...

展开目录

目录导航