前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >uni组件传值注意

uni组件传值注意

原创
作者头像
杨充
修改2020-05-25 10:38:07
3960
修改2020-05-25 10:38:07
举报
文章被收录于专栏:lib库lib库
目录介绍
  • 01.组件传值遇到坑
  • 02.父组件传值给子组件
  • 03.子组件传值给父组件

01.组件传值遇到坑

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

02.父组件传值给子组件

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

03.子组件传值给父组件

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录介绍
  • 01.组件传值遇到坑
  • 02.父组件传值给子组件
  • 03.子组件传值给父组件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档