码迷,mamicode.com
首页 > 其他好文 > 详细

uni组件传值注意

时间:2020-05-24 12:09:10      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:return   parent   引入   rop   show   attr   rip   def   span   

目录介绍

  • 01.组件传值遇到坑
  • 02.父组件传值给子组件
  • 03.子组件传值给父组件

01.组件传值遇到坑

  • 子组件给父组件传值注意点
    • 注意子组件触发事件定义的方法,首先在父组件中需要绑定子组件内部对应事件,然后一定要和父控件接受的保持一致,否则无法传递数据。
    //在area.vue中,进行事件触发,传递数据
    this.$emit(‘onConfirm‘,true, selectVal)
    
    //在select-school.vue中,需要在在子组件标签上绑定子组件内部对应事件,并且方法名一致
    <!-- 地区选择器 -->
    <optional :status=‘show‘ @onUpdate=‘onUpdate‘ @onConfirm=‘onConfirm‘></optional>
    
  • 遇到疑问?
    • 要是同级的组件,那么该如何传递数据呢?

02.父组件传值给子组件

  • 父组件的代码如下
    <!-- 父组件传子组件 -->
    <!-- 父组件内部写法 -->
    <template>
        <view>
            <h2>父组件</h2>
            <!-- 绑定自定义属性传递数据 -->
            <children style="color: #0000FF;" :value="valPar" ></children>
        </view>
    </template>
    
    <script>
        //引入子组件
        import children from "../../pages/ele/element-children1.vue"
        export default {
            data() {
                return {
                    valPar:"父组件传递过来的值"
                }
            },
            components:{
    			//注册子组件
                children
            },
        }
    </script>
    
  • 子组件的代码如下
    <!-- 父组件传子组件 -->
    <!-- 子组件内部写法 -->
    <template>
        <h2>子组件收到:{{value}}</h2>
    </template>
    
    <script>
        export default {
            props:{
                value:{
                    type:String,
                    default:"默认值"
                }
            },
            data() {
                return {
                    
                }
            },
        }
    </script>
    

03.子组件传值给父组件

  • 父组件的代码如下
    <!-- 子组件传父组件 -->
    <!-- 父组件内部写法 -->
    <template>
        <view>
            <!-- 接收到子组件传递的数据 -->
            <h2>父组件接收到的值:{{valueChild}}</h2>
            <!-- 在子组件标签上绑定子组件内部对应事件,并触发对应回调 -->
            <children style="color: #0000FF;" @Transmit="handle"></children>
        </view>
    </template>
    
    <script>
        //引入子组件
        import children from "../../pages/ele/element-children2.vue"
        export default {
            data() {
                return {
    				//定义属性接收数据
                    valueChild:"",
                }
            },
            components:{
    			//注册子组件
                children
            },
            methods:{
                // 子组件内部触发事件对应回调handle
                handle(val){
                    this.valueChild=val;
                }
            }
        }
    </script>
    
  • 子组件的代码如下
    <!-- 子组件传父组件 -->
    <!-- 子组件内部写法 -->
    <template>
        <view>
            <h2>子组件</h2>
            <!-- 点击按钮进行事件触发 -->
            <button @click="handleTransmit">点击给父组件传值</button>
        </view>
    </template>
    
    <script>
        export default {
            data() {
                return {
                    //要传递的数据
                    valueParent: "子组件传递过来的数据"
                }
            },
            methods: {
                handleTransmit() {
                    // 进行事件触发,传递数据
                    this.$emit("Transmit", this.valueParent)
                }
            }
        }
    </script>

uni组件传值注意

标签:return   parent   引入   rop   show   attr   rip   def   span   

原文地址:https://www.cnblogs.com/yc211/p/12949066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!