Skip to content

Commit

Permalink
fix(define-model): unifed key
Browse files Browse the repository at this point in the history
  • Loading branch information
sxzz committed Oct 16, 2022
1 parent dde7477 commit 7877ac7
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 6 deletions.
5 changes: 5 additions & 0 deletions .changeset/soft-avocados-jam.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@vue-macros/define-model': patch
---

fix unifed key
4 changes: 2 additions & 2 deletions packages/define-model/src/core/helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ import { useVModel } from '@vueuse/core';
export default (...keys) => {
const props = getCurrentInstance().proxy.$props
const ret = {}
for (const [key, eventName] of keys)
ret[key] = useVModel(props, key, undefined, { eventName })
for (const [key, prop, eventName] of keys)
ret[key] = useVModel(props, prop, undefined, { eventName })
return ret
}
`
2 changes: 1 addition & 1 deletion packages/define-model/src/core/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ export const transformDefineModel = (

const names = Object.keys(map)
const text = `_DM_useVModel(${names
.map((n) => `['${getPropKey(n)}', '${getEventKey(n)}']`)
.map((n) => `['${n}', '${getPropKey(n)}', '${getEventKey(n)}']`)
.join(', ')})`
s.overwriteNode(modelDecl!, text, { offset: setupOffset })
}
Expand Down
7 changes: 5 additions & 2 deletions playground/vue2/src/examples/define-model/child.vue
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
<script setup lang="ts">
let { title } = defineModel<{
let { modelValue, title } = defineModel<{
modelValue: number
title: string
}>()
const update = () => {
modelValue.value++
title.value += ' Updated!'
debugger
}
Expand All @@ -16,7 +18,8 @@ const check = () => {
<template>
<div>
<div>defineModel demo.</div>
<div>current value: {{ title }}</div>
<div>value: {{ modelValue }}</div>
<div>title: {{ title }}</div>
<button @click="update">Update</button>
<button @click="check">Check source map</button>
</div>
Expand Down
3 changes: 2 additions & 1 deletion playground/vue2/src/examples/define-model/parent.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@
import { ref } from 'vue'
import Child from './child.vue'
const value = ref(0)
const title = ref('hello')
</script>

<template>
<div>
<child :title.sync="title" />
<child v-model="value" :title.sync="title" />
</div>
</template>
1 change: 1 addition & 0 deletions playground/vue2/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export default defineConfig({
},
plugins: [
VueMacros({
version: 2,
plugins: {
vue: Vue({
include: [/\.vue$/, /setup\.[cm]?[jt]sx?$/],
Expand Down

0 comments on commit 7877ac7

Please sign in to comment.