element plus vue3 typescript组件操作写法--持续整理中

1、获取当前页面代理
 const { proxy } = getCurrentInstance() as ComponentInternalInstance
使用
  // 返回值给调用页面的@backEventListen绑定的函数
  proxy?.$emit('callBackEvent', ids);
  // 直接返回给v-model绑定的值
  proxy?.$emit('update:id', ids);
//弹出提示框
  proxy?.$modal.msgError('请选择要分配的用户');
  proxy?.$modal.msgSuccess('分配成功');
2、子组件和父组件双向绑定
1)父组件写法:v-model:id
  <select-user :sType="stype" v-model:id="userInfo.ids" @callBackEvent="printIds"></select-user>
2)子组件写法:先定义prop接收,再用update:id方式双向绑定
  const pros=defineProps({
    id: {
      type: String,
      default: ''
    }
  })
。。。。。。。。。。。。。。。。。。
// 直接返回给v-model绑定的值
proxy?.$emit('update:id', ids);
3、获取el-tree组件及使用
//引入
import { ElTree } from 'element-plus'
//定义,deptTree即组件的ref
const deptTree = ref<InstanceType<typeof ElTree>>();
//使用
deptTree.value?.getCheckedNodes()
deptTree.value?.setCheckedNodes([data]);
4、全局定义组件:main.ts
// 自定义组件
import SelectUser from '@/components/SelectUser/index.vue';
import SelectDept from '@/components/SelectDept/index.vue';
app.component('select-user', SelectUser);
app.component('select-dept', SelectDept);
5、表单form和table组件
const deptTableRef = ref<ElTableInstance>();
const queryFormRef = ref<ElFormInstance>();
deptTableRef.value?.toggleRowExpansion(item, status)
deptFormRef.value?.resetFields();
6、solt使用直接用template替代了
<el-dialog title="人员选择" v-model="dialog.visible" width="500px" destroy-on-close append-to-body>
      <el-tree
        ref="deptTree"
        :data="data"
        show-checkbox
        default-expand-all
        node-key="id"
        :default-checked-keys="checkedData"
        highlight-current
        :props="defaultProps"
        @check-change="handleClick"
      >
      // 原先用的solt和solt-scope
        <template #default="{ node, data }">
          <span :class="data.icon"></span>
          <span>{{ node.label }}</span>
        </template>
      </el-tree>
      // footer写法变成这样
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" @click="getCheckedNodes">确 定</el-button>
          <el-button @click="resetChecked">重置</el-button>
        </div>
      </template>
7、emit的简化写法
//调用组件时候绑定的回调函数
const emit = defineEmits(["ok"]);
emit('ok');
8、表单验证rules写法
const loginRules: ElFormRules = {
  tenantId: [{ required: true, trigger: "blur", message: "请输入您的租户编号" }],
  username: [{ required: true, trigger: 'blur', message: '请输入您的账号' }],
  password: [{ required: true, trigger: 'blur', message: '请输入您的密码' }],
  code: [{ required: true, trigger: 'change', message: '请输入验证码' }]
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值