refactor: ♻️ 使用vue3.3新特性defineModel实现组件传值的双向绑定
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
<div
|
<div
|
||||||
class="layout-item left"
|
class="layout-item left"
|
||||||
:class="{ 'is-active': modelValue === LayoutEnum.LEFT }"
|
:class="{ 'is-active': modelValue === LayoutEnum.LEFT }"
|
||||||
@click="updateValue(LayoutEnum.LEFT)"
|
@click="handleLayoutChange(LayoutEnum.LEFT)"
|
||||||
>
|
>
|
||||||
<div />
|
<div />
|
||||||
<div />
|
<div />
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
<div
|
<div
|
||||||
class="layout-item top"
|
class="layout-item top"
|
||||||
:class="{ 'is-active': modelValue === LayoutEnum.TOP }"
|
:class="{ 'is-active': modelValue === LayoutEnum.TOP }"
|
||||||
@click="updateValue(LayoutEnum.TOP)"
|
@click="handleLayoutChange(LayoutEnum.TOP)"
|
||||||
>
|
>
|
||||||
<div />
|
<div />
|
||||||
<div />
|
<div />
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
<div
|
<div
|
||||||
class="layout-item mix"
|
class="layout-item mix"
|
||||||
:class="{ 'is-active': modelValue === LayoutEnum.MIX }"
|
:class="{ 'is-active': modelValue === LayoutEnum.MIX }"
|
||||||
@click="updateValue(LayoutEnum.MIX)"
|
@click="handleLayoutChange(LayoutEnum.MIX)"
|
||||||
>
|
>
|
||||||
<div />
|
<div />
|
||||||
<div />
|
<div />
|
||||||
@@ -38,14 +38,19 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { LayoutEnum } from "@/enums/LayoutEnum";
|
import { LayoutEnum } from "@/enums/LayoutEnum";
|
||||||
|
|
||||||
const props = defineProps({
|
const modelValue = defineModel("modelValue", {
|
||||||
modelValue: String,
|
type: String,
|
||||||
|
required: true,
|
||||||
|
default: () => "",
|
||||||
});
|
});
|
||||||
|
|
||||||
const emit = defineEmits(["update:modelValue"]);
|
/**
|
||||||
|
* 变换布局
|
||||||
function updateValue(layout: string) {
|
*
|
||||||
emit("update:modelValue", layout);
|
* @param layout
|
||||||
|
*/
|
||||||
|
function handleLayoutChange(layout: string) {
|
||||||
|
modelValue.value = layout;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user