vue子组件如何获取父组件的内容(props属性)

 更新时间:2022年04月20日 11:09:22   作者:Queen_zdd  
这篇文章主要介绍了vue子组件获取父组件的内容(props属性),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

子组件如何获取父组件的内容

props属性

组件实例的作用域是孤立的。这意味着不能并且不应该在子组件的模板内直接引用父组件的数据。可以使用 props 把数据传给子组件。

想要引用父组件需要:

<bbb v-bind:myMsg="msg"></bbb>//子组件将父组件的数据msg绑定到myMsg上
bbb:{
    props:{
        'myMsg':String  //绑定数据的类型
    }
}

注:props也可表达成如下:props:['myMsg'] 

完整实例如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="js/vue.js"></script>
</head>
<body>
<div id="example">
    <aaa></aaa>
</div>
<template id="aaa">
    <h1>{{msg}}</h1>       //父组件
    <bbb :my-msg="msg"></bbb> //子组件
</template>
<script>
    window.onload=function(){
        new Vue({
            el: '#example',
                 data:{
                     },
            components:{
                aaa:{
                    data:function(){
                        return{
                            msg:'我是父组件的数据'
                        }
                     },
                    template:'#aaa',
                    components:{
                        bbb:{
                            props:{
                                'myMsg':String
                            },
                            template:'<h2>我是子组件-->{{myMsg}}</h2>'
                        }//当html中使用my-msg时,在js中需使用驼峰命名myMsg
                    }
                }
            }
    })
    }
</script>
</body>
</html>

最后的结果如下图:

vue父→子组件的props传值

需求1

如果要将自定义属性里的值传递给模板,可以使用props属性:

写法注意的地方:

1.props的大小写:对于html里的短横线命名,在vue里面要用小驼峰命名法(大驼峰命名介绍:第一个字母也是大写);

2.template里必须有一个根目录:

需求2

实际项目中我们经常要将data里面的值传递给模板,操作如下:

思路:使用v-bind和data数据绑定,将值传递到组件的模板里的插值里.

另一个案例:

效果图:

传递的过程总结:准备一个大的组件(在vue实例里)和一个子组件son,在son子组件里使用v-bind绑定要传递的message属性,message属性值是对应父组件里的data值,然后在son子组件component方法的第二个参数的对象里增加一个props属性(重点是这个props属性,它是用来接收父组件的值的),值是数组,里面就填字符串形式的message,最后直接在子组件的模板里用插值的方式使用这个message就可以了.

同时,也要了解子组件同步修改父子组件的值,操作如下:

子组件修改父子组件值的操作过程:

在子组件里定义一个修改的方法,在方法里添加this.$emit()方法,它有两个参数,第一个是自定义事件名,第二个是要修改的值,接着在父组件里用v-on添加这个自定义事件,值写父组件方法,在这个方法里用(美元event)作为参数,在父组件方法里接收并操作自己要修改的逻辑操作即可.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 前端构建工具Webpack、Vite区别有哪些

    前端构建工具Webpack、Vite区别有哪些

    Webpack和Vite是两种主流的前端构建工具,它们在功能、性能和使用场景上有所不同,Webpack提供丰富的功能和配置,适合大型复杂项目,但可能导致启动和构建速度较慢,Vite基于ES模块,支持快速的热替换,适合小型或中等项目,需要的朋友可以参考下
    2024-10-10
  • vue自定义封装按钮组件

    vue自定义封装按钮组件

    这篇文章主要为大家详细介绍了vue自定义封装按钮组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 使用Vue3和p5.js实现交互式图像动画

    使用Vue3和p5.js实现交互式图像动画

    这篇文章主要介绍了如何用Vue3和p5.js打造一个交互式图像动画,文中给出了详细的代码示例,本代码适用于需要在网页中实现图像滑动效果的场景,例如图片浏览、相册展示等,感兴趣的小伙伴跟着小编一起来看看吧
    2024-06-06
  • Pinia进阶setup函数式写法封装到企业项目

    Pinia进阶setup函数式写法封装到企业项目

    这篇文章主要为大家介绍了Pinia进阶setup函数式写法封装到企业项目实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • vue实现抽奖效果Demo

    vue实现抽奖效果Demo

    这篇文章主要介绍了vue实现抽奖效果Demo,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • vue3+element Plus使用el-tabs标签页解决页面刷新不回到默认页的问题

    vue3+element Plus使用el-tabs标签页解决页面刷新不回到默认页的问题

    这篇文章主要介绍了vue3+element Plus使用el-tabs标签页页面刷新不回到默认页的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 详解vue开发中调用微信jssdk的问题

    详解vue开发中调用微信jssdk的问题

    这篇文章主要介绍了vue开发中调用微信jssdk的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 浅谈Vue下使用百度地图的简易方法

    浅谈Vue下使用百度地图的简易方法

    本篇文章主要介绍了浅谈Vue下使用百度地图的简易方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 使用 Vue 3 的 createApp方法初始化应用的基本步骤

    使用 Vue 3 的 createApp方法初始化应用的基本步骤

    createApp 是 Vue 3 引入的全局 API,用于创建一个应用实例,这篇文章主要介绍了如何使用 Vue 3 的 createApp方法初始化应用,通过 createApp 方法,我们从 Vue 3 的基本初始化开始,扩展到插件的应用、多个应用实例的创建等,需要的朋友可以参考下
    2024-05-05
  • vue长列表优化之虚拟列表实现过程详解

    vue长列表优化之虚拟列表实现过程详解

    前端的业务开发中会遇到不使用分页方式来加载长列表的需求,下面这篇文章主要给大家介绍了关于vue长列表优化之虚拟列表实现的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08

最新评论