#typescript #vue.js #vue-component #vite
#typescript #vue.js #vue-компонент #vite
Вопрос:
Я новичок в vue и чувствую себя смущенным, как правильно объединить vite, ts и vue3.Я хочу знать, какое лучшее решение для этого в vue, я добавлю маршрут vue, vuex позже.
Я нашел два способа создания вышеупомянутого проекта:
npm init vite
(затем я выбираю vue-ts)npm init vite-app <project-name>
(затем я добавляю typescript вручную с помощью npm)
Мой вопрос заключается в том, что:
- Первый способ генерирует
vite.config.ts
, в то время как у второго способа его нет, почему и какое лучшее решение? - Что касается
ts
стиля кода в vue, какой стиль лучше писать.Я видел много видов кода для написания компонента в vue3 с помощью typescript, например:
(1)
<script>
import { defineComponent, computed } from 'vue'
import { useStore } from 'vuex'
import { key } from '../store'
export default defineComponent({
name: 'HelloWorld',
props: {
msg: {
type: String,
default: ''
}
},
setup() {
const store = useStore(key)
const count = computed(() => store.state.count)
return {
count,
inCrement: () => store.commit('increment')
}
}
})
</script>
(2)
<script lang="ts">
import { Component, Prop, Vue } from 'vue-property-decorator'
import { isExternal } from '@/utils/validate'
@Component({
name: 'SidebarItemLink'
})
export default class extends Vue {
@Prop({ required: true }) private to!: string
private isExternal = isExternal
}
</script>
Комментарии:
1. Возможно, это не имеет значения, но NuxtJS — это фреймворк, созданный поверх Vue. Он имеет встроенную поддержку Typescript, а также Vite. Проверьте это сами, и, возможно, вы сможете получить от этого хорошее вдохновение; nuxtjs.org
2. Спасибо, я посмотрю этот документ.
Ответ №1:
Для стиля кода компонента vue 3 рекомендует использовать defineComponent
composition api
template(or tsx)
<template>
<p class="msg">{{ msg }}</p>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
setup () {
const msg = 'Hello World!';
return {
msg
}
}
})
</script>
<style scoped lang="scss" >
</style>