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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 实现一个div的拖拽效果_js如何实现拖拽和上下移动

    实现一个div的拖拽效果_js如何实现拖拽和上下移动公司要开一个技术分享会,给我们出了几个简单的题去实现,其中有如何实现表格中列之间的拖拽,我知道html5中有个新方法可以实现,但是没有认真学习,现在闲了去学学,发现关于drag和drop的文章有很多,

    2022年8月3日
    5
  • 批量梯度下降法(BGD)、随机梯度下降法(SGD)和小批量梯度下降法(MBGD)

    批量梯度下降法(BGD)、随机梯度下降法(SGD)和小批量梯度下降法(MBGD)梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(BatchGradientDescent)、随机梯度下降(StochasticGradientDescent)以及小批量梯度下降(Mini-BatchGradientDescent)。其中小批量梯度下降法也常用在深度学习中进行模型的训练。接下来,我们将对这三种不同的梯度下降法进行理解。  为了便于理解,…

    2025年10月22日
    3
  • pytest fixtures_premier fixture

    pytest fixtures_premier fixturefixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

    2022年7月29日
    10
  • sql连接本地数据库

    sql连接本地数据库sql连接本地数据库安装好SQL2008后,界面只有已安装的包和正在运行的包左侧没有数据库,无法进行数据库操作.这是因为打开软件后,会提示连接一个东西,连接的时候按照默认的话就会连接错。如果出现提示连接成功后的界面只有两个文件夹“已安装的包”、“正在运行的包”,则是连接到了IntegrationServices,而非SQLServer数据库引擎。解决方法:在对象资源管理器中,选择…

    2022年5月18日
    110
  • 不让Editplus保存时java文件时生成.bak文件

    不让Editplus保存时java文件时生成.bak文件

    2022年2月23日
    42
  • 经典面试题 HTTPS和HTTP有什么区别?[通俗易懂]

    经典面试题 HTTPS和HTTP有什么区别?[通俗易懂]使用HTTPS协议可认证用户和服务器,确保数据发送正确;HTTPS协议要比http协议安全,防止数据不被窃取、改变,确保数据的完整性;HTTPS是现行架构下比较安全的解决方案,大幅增加了中间人攻击的成本。相比之HTTP,HTTPS已经是现行架构下比较安全的解决方案,也需要我们再不断学习,跟上时代技术的迭代。

    2022年10月16日
    3

发表回复

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

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