{
"vue3": {
"prefix": "vue3-ts",
"body": [
"<template>",
"<div class=\"$1\">$3</div>",
"</template>",
"",
"<script lang=\"ts\">",
"import { ",
" defineComponent, ",
" getCurrentInstance, ",
" reactive, ",
" ref ",
"} from 'vue';",
"",
"",
"",
"export default defineComponent({",
" name: '$2',",
" // 注册你的组件",
" components:{ },",
" props: {",
"",
" },",
" ",
" // 定义一个组件的 emitted 事件,当在 emits 选项中定义了原生事件 (如 click) 时,将使用组件中的事件替代原生事件侦听器。",
" emits: {",
" click: (evt: MouseEvent) => evt instanceof MouseEvent,",
" },",
" setup(props, {attrs, slots, emit, expose }){",
" const { proxy } = (getCurrentInstance() as any); // 全局变量代理,用于使用 app.config.globalProperties.xxx 挂载的参数,也可以不用断言用`.?`",
" let datas = (props as any).datas; // 父组件数据",
"",
" return {",
" proxy,",
" attrs, // Attribute (非响应式对象,等同于 $attrs),有状态,会随组件本身的更新而更新",
" slots,",
" emit, // 触发事件 (方法,等同于 $emit)",
" expose, // 暴露公共 property (函数)",
" }",
" },",
" ",
"",
" methods:{",
" ",
" }",
"});",
"</script>",
"",
"<style lang=\"less\" scoped></style>"
],
"description": "Generate a component template of the vue3+typescript project."
}
}
简单版
{
"vue3": {
"prefix": "vue3-ts",
"body": [
"<template>",
"<div class=\"$1\">$3</div>",
"</template>",
"",
"<script>",
"import { ",
" defineComponent, ",
" getCurrentInstance, ",
" reactive, ",
" ref ",
"} from 'vue';",
"",
"",
"",
"export default defineComponent({",
" name: '$2',",
" // 注册你的组件",
" components:{ },",
" props: {",
"",
" },",
" ",
" emits: [",
" ],",
" setup(props, {attrs, slots, emit, expose }){",
"",
" return {",
" attrs, // Attribute (非响应式对象,等同于 $attrs),有状态,会随组件本身的更新而更新",
" slots,",
" emit, // 触发事件 (方法,等同于 $emit)",
" expose, // 暴露公共 property (函数)",
" }",
" },",
" ",
"",
" methods:{",
" ",
" }",
"});",
"</script>",
"",
"<style lang=\"sass\" scoped></style>"
],
"description": "Generate a component template of the vue3+typescript project."
}
}