vue用什么语法实现
在Vue中实现不同功能时,通常会根据场景选择以下语法:
模板语法(Template Syntax)
Vue的模板语法基于HTML扩展,支持数据绑定和指令:
<div id="app">
{{ message }} <!-- 插值表达式 -->
<button v-on:click="reverseMessage">反转</button> <!-- 指令 -->
<p v-if="seen">现在你看到我了</p> <!-- 条件渲染 -->
</div>
选项式API(Options API)
通过data、methods等选项组织代码,适合简单场景:
export default {
data() {
return { message: 'Hello Vue!' }
},
methods: {
reverseMessage() {
this.message = this.message.split('').reverse().join('')
}
}
}
组合式API(Composition API)
使用setup()函数和响应式API,适合复杂逻辑:
import { ref } from 'vue'
export default {
setup() {
const message = ref('Hello Vue!')
function reverseMessage() {
message.value = message.value.split('').reverse().join('')
}
return { message, reverseMessage }
}
}
单文件组件(SFC)
.vue文件将模板、逻辑和样式封装在一起:
<template>
<button @click="count++">{{ count }}</button>
</template>
<script>
export default {
data() {
return { count: 0 }
}
}
</script>
<style scoped>
button { color: red }
</style>
响应式基础
使用ref和reactive创建响应式数据:
import { ref, reactive } from 'vue'
const count = ref(0)
const state = reactive({ foo: 'bar' })
计算属性和侦听器
处理派生状态和副作用:
const doubleCount = computed(() => count.value * 2)
watch(count, (newVal) => console.log(newVal))
生命周期钩子
在组件不同阶段执行逻辑:
onMounted(() => console.log('组件已挂载'))
根据项目复杂度和团队习惯,可以选择传统选项式API或更灵活的组合式API。Vue 3推荐在新项目中使用组合式API,但两种语法可以共存。







