zoukankan      html  css  js  c++  java
  • vue3+element 父组件子组件传值

    问题:

    table 操作栏 自定义按钮 需要弹出窗口 ,窗口封装成组件 父组件调用子组件的 dialog

    需要两个文件 1. list.uve 2.UserInfoDialog.vue

    效果如下

    setp1:

    list.vue 中 页面加入

        <!-- 客户信息弹窗 -->
        <UserInfoDialog :shDialog="shDialog" @closeShDialog="closeShDialog" />
      

     

     引入 子组件文件

    定义dialog 开关

    setp2:

    UserInfoDialog.vue
     
    <template>
      <div>
        <el-dialog v-model="imgsDialogVisible" append-to-body="true" @closed="handleClose">
          <img width="100%" :src="exhibitImg" alt="" />
          <div>1111111111</div>
          <span class="dialog-footer">
            <el-button @click="imgsDialogVisible = false">取 消</el-button>
            <el-button type="primary" @click="imgsDialogVisible = false"
              >确 定</el-button
            >
          </span>
        </el-dialog>
      </div>
    </template>
    <script>
    import { ref, reactive, onMounted } from "vue";
    import { ElMessage, ElMessageBox, ElUpload } from "element-plus";

    export default {
      components: {},
      props: {
        shDialog: {
          type: Boolean,
          default: false,
        },
      },
      watch: {
        shDialog(val) {
          this.imgsDialogVisible = val;
        },
      },
      setup(props, context) {
        // 图片展示弹窗
        const imgsDialogVisible = ref(false);
        onMounted(() => {
          imgsDialogVisible.value = props.shDialog;
        });

        const handleClose = (ret) => {
          context.emit("closeShDialog");
        };

        return {
          imgsDialogVisible,
          handleClose,
        };
      },
    };
    </script>

    子组件重点

    props,watch,onMounted,emit

    props,接收父组件的值

    watch,监听父组件的值

    emit,调用父组件的方法

  • 相关阅读:
    定位中方向余弦矩阵(DCM)简介
    前端UI框架小汇总
    前端知识点小结
    overflow兼容iOS
    使用Flexible实现手淘H5页面的终端适配
    获取当前Javascript脚本文件的路径
    Javascript中document.execCommand()的用法 ( 实现浏览器菜单的很多功能 )
    jquery中的map()方法与js中的map()方法
    js判断是否为移动端
    页面制作注意事项
  • 原文地址:https://www.cnblogs.com/id7s/p/15724221.html
Copyright © 2011-2022 走看看