当前位置: 首页 > article >正文

如何使用vue定义组件之——父组件调用子组件数据

首先,准备父子容器:

 <div class="container">
        <my-father></my-father>
        <my-father></my-father>
        <my-father></my-father>
        <!-- 此处无法调用子组件,子组件必须依赖于父组件进行展示 -->
        <!-- <my-children></my-children> -->
    </div>

    <template id="father">
        <div>
            <h3>我是父组件</h3>
            <h3>访问自己的数据:</h3>
            <h3>{{ msg }}</h3>
            <my-children></my-children>
            <hr>
        </div>
    </template>

    <template id="children">
        <div>
            <h5>我是子组件</h5>
        </div>
    </template>

准备Vue实例:

<script>
    new Vue({
        el: '.container',
        components: {
            'my-father': {//父组件
                template: '#father',
                data() {
                    return {
                        msg: "welcome father!",
                        name: "I'm a father!",
                        age: 66,
                        user: {
                            id: 1001,
                            username: 'admin'
                        }
                    }
                },
                components: {
                    'my-children': { //子组件,只能在 my-father中调该组件
                        template: '#children'
                    }
                }
            }
        }
    })
</script>

现在,我们需要向子组件索取数据:

技术:属性绑定+数据拦截

父组件在调用子组件时,以属性绑定的方式将要传递的数据绑定在子组件标签上
    <template id="father">
        <div>
            <h3>我是父组件</h3>
            <h3>访问自己的数据:</h3>
            <h3>{{ msg }}</h3>
            <!-- 1.向子组件绑定数据 -->
            <my-children v-bind:father_name="name" :age="age" :user="user"></my-children>
            <hr>
        </div>
    </template>
在子组件对象中,使用props选项声明获取的数据,进行绑定属性的拦截,即接收来自父组件的数据
components: {
                    'my-children': { //子组件,只能在 my-father中调该组件
                        template: '#children',
                        props: {
                            //接受父组件传递过来的数据
                            //不能使用fatherName接受数据!!!!
                            // fatherName: String
                            father_name: {
                                type: String,
                                default: "父类的元素"
                            },
                            age: {
                                type: Number,
                                default: 100
                            },
                            user: {
                                type: Object,
                                default :function() {
                                    return {
                                        id: 1000,
                                        username: "默认名"
                                    }
                                }
                            }
                        }
                    }
                }

现在,可以在界面调用父组件的数据:

    <template id="children">
        <div>
            <h5>我是子组件</h5>
            <h4>访问父组件的数据:{{ father_name }}</h4>
            <h4>访问父组件的数据:{{ age }}</h4>
            <h4>访问父组件的数据:{{ user }}</h4>
        </div>
    </template>

打印结果:

相关文章:

 如何使用vue定义组件之——全局or局部

如何使用vue定义组件之——子组件调用父组件数据 

如何使用vue定义组件之——父组件调用子组件 


http://www.kler.cn/a/271979.html

相关文章:

  • 机器学习-使用梯度下降最小化均方误差
  • MyBatis Plus 的 InnerInterceptor:更轻量级的 SQL 拦截器
  • ARM GCC编译器
  • Plotly 函数图像绘制
  • Kotlin基础知识学习(三)
  • yolov11 pose 推理代码
  • 【2024第一期CANN训练营】4、AscendCL推理应用开发
  • QT----基于QT的人脸考勤系统
  • ROS 语音交互(二)nlp
  • 贡献法:USACO 2021 December Contest Bronze:孤独的照片
  • reloading,一个很实用的Python库!
  • 2024年视频制作软件哪个好用?盘点10个视频剪辑软件,哪个更适合你
  • Flink程序员开发利器本地化WebUI生成
  • 机器人路径规划:基于改进型A*算法的机器人路径规划(提供Python代码)
  • 【Jetson Nano】jetson nano一些基本功能命令
  • 某赛通电子文档安全管理系统 DecryptApplication 任意文件读取漏洞(2024年3月发布)
  • PHP魔术方法详解
  • 【软考高项】七、信息技术发展之存储、数据库、信息安全
  • Vue-router3.0版本跳转报错
  • 【MySQL】ROW_NUMBER 窗口函数妙用之报告系统状态的连续日期
  • Springboot 整合 Elasticsearch(五):使用RestHighLevelClient操作ES ②
  • ClickHouse中的设置的分类
  • 【LeetCode热题100】24. 两两交换链表中的节点(链表)
  • 树与二叉树(数据结构)
  • 前端学习之css伪元素选择器
  • sqlplus设置提示符