响应式

v-formly-v3 因为 Vue 3 的响应式,所以也支持响应式的在运行时设置表单项的所有属性。

代码演示

我们给输入框设置一个响应式的边框属性const hasBorder = ref(true);,当我们点击“设置边框”按钮时,他会 toggle 边框设置,这样我们就无需像 Vue 2 版本中的v-formly一样获取context上下文,然后通过使用上下文context来设置了,是不是很方便?

基本使用
<template>
  <div>
    <v-formly-v3 ref="form" v-model="formData" :meta="meta"></v-formly-v3>
    <div class="btns">
      <el-button type="primary" @click="submit"> 设置禁用 </el-button>
    </div>
  </div>
</template>

<script setup lang="ts">
import { ref } from "vue";
import type VFormly from "@/element-plus/ElFormly.vue";

const form = ref<null | InstanceType<typeof VFormly>>(null);
const isDisabled = ref(false);
const meta = {
  type: "object",
  properties: {
    string1: {
      title: "基本使用",
      type: "string",
      readOnly: isDisabled,
      ui: {
        showRequired: true,
        placeholder: "Basic usage",
        errors: {
          required: "请输入",
        },
        change: (val: string) => console.log(val),
      },
    },
  },
  required: ["string1"],
};
let formData: any = ref({});

function submit() {
  isDisabled.value = !isDisabled.value;
}
</script>

<style scoped></style>
复制