响应式
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">
<a-button type="primary" @click="submit"> 设置边框 </a-button>
</div>
</div>
</template>
<script setup lang="ts">
import { ref } from "vue";
import type VFormly from "@/ant-design-vue/AFormly.vue";
const form = ref<null | InstanceType<typeof VFormly>>(null);
const hasBorder = ref(true);
const meta = {
type: "object",
properties: {
string1: {
title: "基本使用",
type: "string",
ui: {
showRequired: true,
placeholder: "Basic usage",
bordered: hasBorder,
errors: {
required: "请输入",
},
change: (val: string) => console.log(val),
},
},
},
required: ["string1"],
};
let formData: any = ref({});
function submit() {
hasBorder.value = !hasBorder.value;
}
</script>
<style scoped></style>
复制