Skip to content

How to use v-model in vue2.7 jsx #7

Open
@Mr-xzq

Description

// package.json
{
  "dependencies": {
    "vue": "~2.7.8",
  },
  "devDependencies": {
    "@babel/core": "^7.18.10",
    "@vitejs/plugin-legacy": "~2.0.0",
    "@vitejs/plugin-vue2": "^1.1.2",
    "@vitejs/plugin-vue2-jsx": "^1.0.2",
    "terser": "^5.14.2",
    "vite": "~3.0.3",
  },
  "engines": {
    "node": "^16.0.0",
    "pnpm": "^7.9.0"
  },

}
// vite.config.js
import { defineConfig } from 'vite';
import legacy from '@vitejs/plugin-legacy';
import vue2 from '@vitejs/plugin-vue2';
import vue2Jsx from '@vitejs/plugin-vue2-jsx';

export default defineConfig(({ command, mode }) => {
  return {
    plugins: [
      vue2(),
      vue2Jsx(),
      legacy({
        // When targeting IE11, you also need regenerator-runtime
        additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
      }),
    ],
  };
});
// demo.vue
<script lang="jsx">
import { defineComponent, ref } from 'vue';

let index = 0;
export default defineComponent({
  setup() {
    
    const date1 = ref(new Date());

    // Invalid prop: type check failed for prop "value". Expected Date, String, Array, got Object 
    const datePicker1 = <DatePicker  v-model={date1}></DatePicker>;

    const date2 = new Date()
    // Although there is no warning above, but this loses reactive
    const datePicker2 = <DatePicker  v-model={date2}></DatePicker>;

    const date3 = ref(new Date());
    // [plugin:vite:vue2-jsx] unknown: Cannot read properties of undefined (reading 'body')
    const datePicker3 = <DatePicker  v-model={date3.value}></DatePicker>;
    
    return () => datePicker;
  },
});
</script>

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions