Vue 3 快速入门:最友好的前端框架
什么是 Vue
Vue 是一个前端框架,帮你更高效地构建用户界面。
为什么用 Vue
- 📦 组件化:页面拆成独立的小块,每个块有自己的逻辑和样式
- 🔄 响应式:数据变了,页面自动更新
- 🧩 生态好:Vue Router、Pinia、Vite 无缝配合
- 📖 文档友好:中文文档非常完善
- 🤖 AI 友好:AI 对 Vue 的支持非常好
Vue 文件结构 (.vue)
<script setup>
// JavaScript 逻辑
import { ref } from 'vue';
const message = ref('你好 Vue!');
</script>
<template>
<!-- HTML 模板 -->
<h1>{{ message }}</h1>
<button @click="message = '变了!'">点击</button>
</template>
<style scoped>
/* CSS 样式(scoped = 只影响当前组件) */
h1 { color: purple; }
</style>
一个 .vue 文件 = 逻辑 + 模板 + 样式 三合一。
核心概念速览
响应式数据 ref()
const count = ref(0);
count.value++; // 修改数据 → 页面自动更新!
计算属性 computed()
const doubled = computed(() => count.value * 2);
// count 变了 → doubled 自动重新计算
条件渲染 v-if
<div v-if="isLoggedIn">欢迎回来!</div>
<div v-else>请先登录</div>
列表渲染 v-for
<li v-for="item in todos" :key="item.id">
{{ item.task }}
</li>
事件处理 @click
<button @click="handleSubmit">提交</button>
双向绑定 v-model
<input v-model="username" />
<!-- 输入框的值和 username 变量实时同步 -->
Props:父传子
<!-- 父组件 -->
<ChildComponent :name="username" />
<!-- 子组件 -->
<script setup>
const props = defineProps(['name']);
</script>
<template>
<p>你好,{{ name }}</p>
</template>
Emit:子传父
<!-- 子组件 -->
<script setup>
const emit = defineEmits(['submit']);
function handleClick() {
emit('submit', { id: 1 });
}
</script>
<!-- 父组件 -->
<ChildComponent @submit="handleChildSubmit" />
Vue Router:页面跳转
// router/index.js
const routes = [
{ path: '/', component: Home },
{ path: '/about', component: About },
];
<!-- 导航 -->
<router-link to="/">首页</router-link>
<router-link to="/about">关于</router-link>
<!-- 页面渲染位置 -->
<router-view />
用 AI 写 Vue
“用 Vue 3 + Composition API 帮我做一个计数器组件,支持增加、减少、重置功能。用 Tailwind CSS 写样式。”
→ AI 会生成完整的 .vue 文件。
小结
Vue 3 的核心就 6 个概念:
ref()= 响应式数据v-if= 条件显示v-for= 列表循环@click= 事件处理props/emit= 组件通信<router-link>= 页面跳转
下一篇我们实战做一个完整的博客项目。