• uni组件传值注意


    目录介绍

    • 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>
  • 相关阅读:
    Singleton 单例模式 泛型 窗体控制
    SpringMVC异常处理注解@ExceptionHandler
    如何实现beanutils.copyProperties不复制某些字段
    Spring 注解学习笔记
    使用客户端SVN在Update时遇到Previous operation has not finished; run 'cleanup' if it was interrupted,需要cheanup文件夹,解决方式
    jQuery的选择器中的通配符
    mysql str_to_date字符串转换为日期
    Mybatis中mapper.xml文件判断语句中的单双引号问题
    Jquery中each的三种遍历方法
    Javascript 中动态添加 对象属性
  • 原文地址:https://www.cnblogs.com/yc211/p/12949066.html
Copyright © 2020-2023  润新知