41. Vue组件传值-父组件向子组件传值

41. Vue组件传值-父组件向子组件传值前言前面写了组件的创建、切换等等篇章,主要讲述了组件自身如何在父组件app中如何渲染使用。这里存在一个问题,就是父组件的数据如何传递到子组件中。这是一个很常见的情况,如果是jQuery那么都是直接传参数就是了,而在Vue框架中,这里就要使用子组件中props属性来处理了。官网介绍props地址:https://cn.vuejs.org/v2/guide/components-props.ht…

大家好,又见面了,我是你们的朋友全栈君。

前言

前面写了组件的创建、切换等等篇章,主要讲述了组件自身如何在父组件app中如何渲染使用。这里存在一个问题,就是父组件的数据如何传递到子组件中。

这是一个很常见的情况,如果是jQuery那么都是直接传参数就是了,而在Vue框架中,这里就要使用子组件中props属性来处理了。

官网介绍props地址:https://cn.vuejs.org/v2/guide/components-props.html

那么下面来看看一个父组件向子组件传值的示例。

示例:使用props传静态值

1.首先编写一个组件以及父组件,展示基本的信息

41. Vue组件传值-父组件向子组件传值

image-20200210231934650

首先浏览器展示看看组件渲染情况,如下:

41. Vue组件传值-父组件向子组件传值

image-20200210232021504

2.尝试在子组件直接使用父组件的msg,看看能否显示出数据来

41. Vue组件传值-父组件向子组件传值

image-20200210232406293

浏览器显示如下:

41. Vue组件传值-父组件向子组件传值

image-20200210232514798

那么该如何使用呢?

换一个思考的方式,在app父组件中是可以使用v-bind方法来设置绑定值的,能否通过v-bind来绑定msg到子组件中呢?

3.在父组件中使用 v-bind来绑定msg到子组件中,进行传值

41. Vue组件传值-父组件向子组件传值

image-20200210233115672

通过v-bind将父组件的msg绑定传递到子组件的parentmsg中,下面来看看浏览器是否正常显示,如下:

41. Vue组件传值-父组件向子组件传值

image-20200210233242625

可以从错误提示看到,使用v-bind的传递值都是要在子组件进行定义的,不能直接使用。那么是不是在子组件的data中进行定义呢?

当然不是,子组件有一个特殊的属性props,专门用来定义父组件传递下来的参数,并且传递下来的参数只能是只读。

4.使用props定义父组件传递下来的值

41. Vue组件传值-父组件向子组件传值

image-20200210233559472

浏览器显示如下:

41. Vue组件传值-父组件向子组件传值

image-20200210233750580

显示已经可以正常显示父组件中,传递下来的值了。那么下面来看看,使用props定义的值,能否被修改。

5.修改props定义的值,查看是否会报错

41. Vue组件传值-父组件向子组件传值

image-20200210235256634

浏览器点击之后,如下:

41. Vue组件传值-父组件向子组件传值

image-20200210235329021

41. Vue组件传值-父组件向子组件传值

image-20200210235409906

告警信息如下:

vue.js:634 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "parentmsg"

found in

--->

可以从告警信息看出,的确props定义的值在Vue框架是不需要修改的,只能是只读。

那么反过头来看,子组件中可读可写的数据只有是data定义出来的值才可以。

更多精彩原创Devops文章,快来关注我的Devops社群吧:

41. Vue组件传值-父组件向子组件传值

41. Vue组件传值-父组件向子组件传值

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138593.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CockroachDB_DB商城

    CockroachDB_DB商城概述CockroachDB是一个分布式关系型数据库,主要设计目标是可扩展,强一致和高可靠。在无人干预情况下,能以极短的中断时间容忍磁盘、主机、机架甚至整个数据中心的故障。采用完全去中心化架构,

    2022年8月4日
    3
  • oracle报错ora-01017_oracle表类型变量

    oracle报错ora-01017_oracle表类型变量begin test.test(a=>1,                 b=>:603);end; 执行的时候报错: Ora-01008错误:oracle并非所有变量都已绑定 原因是  b=>:603之前多了一个冒号导致他判断错误,解决方法是检查和删除不需要的冒号。

    2022年9月7日
    0
  • 动态代理

    动态代理

    2021年7月20日
    54
  • 多线程修改VCL控件造成的ntdll.dll错

    多线程修改VCL控件造成的ntdll.dll错 http://www.delphibbs.com/delphibbs/dispq.asp?lid=1574375问题:我调试老是提示:NTDLL.DLL出错线程中:Execute中调用一个写在线程单元的过程P,p执行完后调用Call过程,如下:procedureTDatav.Execute;begin if…..  begin    p;PP:

    2022年9月25日
    0
  • MFCC算法讲解及实现(matlab)[通俗易懂]

    MFCC算法讲解及实现(matlab)[通俗易懂]史上最详细的MFCC算法实现(附测试数据)1.matlab安装voicebox语音包2.MFCC原理讲解3.MFCC算法设计实现(matlab)3.1.wav格式语音文件提取【x(200000*1)】3.2预加重【x(200000*1)】3.3分帧{S(301*1103)}3.4加窗{C(301*1103)}3.5傅里叶变换3.6梅尔滤波器3.7离散余弦变换4.1.matlab安装…

    2022年6月22日
    49
  • RPM 安装位置

    RPM 安装位置rpm-qplxxxxxx.rpm1.如何安装rpm软件包rmp软件包的安装可以使用程序rpm来完成。执行下面的命令rpm-iyour-package.rpm其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。安装过程中可能出现下面的警告或者提示:…conflictwith…可能是要安装的包里有一些文件可

    2022年4月30日
    195

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号