vue3-vite-语法大全
侧边栏壁纸
  • 累计撰写 41 篇文章
  • 累计收到 1 条评论

vue3-vite-语法大全

七叶
2026-04-29 / 1 阅读 / 正在检测是否收录...

一、核心基础:

✅ 2. 响应式数据定义(Vue3 核心,3 种常用方式)
响应式:数据变化时,页面视图自动更新,Vue3 废弃了 Vue2 的 data(){return{}},全部用组合式 API 定义,优先级:ref > reactive > readonly
vue
php 体验AI代码助手 代码解读复制代码

✅ 核心区别记忆:ref 管基本类型,.value 是标识;reactive 管复杂类型,直接用

✅ 3. 方法定义 & 事件绑定(methods 替代方案)
Vue3 中没有 methods 选项,直接在

二、父子组件通信(高频!开发必用,4 种核心写法)
Vue3 组件通信是项目开发的核心,所有写法都是基于

✅ 2. 子传父:defineEmits (最常用,子组件给父组件传值 / 触发事件)

子组件不能直接修改父组件数据,通过派发事件的方式通知父组件修改,完美遵循单向数据流

vue
xml 体验AI代码助手 代码解读复制代码

✅ 3. 父组件获取子组件的属性 / 方法:defineExpose (常用,子组件暴露内容)

Vue3 中

✅ 4. 祖孙组件通信:provide / inject (跨层级传值,无需逐层传递)

解决「父传子传孙」的多层级传参问题,父组件通过 provide 提供数据,子孙组件通过 inject 注入数据,无论层级多深都能获取,无需逐层 props 传递,非常实用

vue
xml 体验AI代码助手 代码解读复制代码

三、计算属性 & 监听器(核心 API,Vue3 写法)
✅ 1. 计算属性 computed - 依赖值变化自动更新,有缓存(推荐)

替代复杂的模板表达式,处理数据格式化、数据拼接、条件计算等,有缓存,依赖值不变时不会重复执行,性能优于方法

vue
xml 体验AI代码助手 代码解读复制代码

✅ 2. 监听器 watch - 监听数据变化,执行回调(4 种写法全覆盖)

Vue3 废弃了 Vue2 的 watch:{},改用组合式 API watch,功能更强大,支持监听单个值、多个值、深度监听、立即执行,无数据变化不执行,按需触发

vue
xml 体验AI代码助手 代码解读复制代码

✅ 补充:watchEffect 懒人版监听,无需指定监听目标,自动收集依赖,初始化必执行,适合简单场景,按需使用即可。

四、生命周期钩子(Vue3 完整生命周期,无 Options API)
✅ 核心说明

Vue3 生命周期全部是组合式 API 函数,需要手动引入才能使用
所有生命周期钩子都写在

✅ 开发高频使用:onMounted(初始化请求) + onUnmounted(清理副作用),占 90% 的业务场景

五、Vite 项目 核心配置文件 vite.config.js(完整版,可直接复制)
你的项目 vue3-vite-demo 根目录的 vite.config.js 是 Vite 的核心配置文件,所有项目优化、路径别名、跨域代理、打包配置都在这里写,下面是完整版通用配置,包含开发中 99% 的配置项,复制即用,注释清晰!
javascript
运行
javascript 体验AI代码助手 代码解读复制代码// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// 路径别名:需要安装 npm i @types/node -D 解决路径报错
import path from 'path'

// https://vitejs.dev/config/
export default defineConfig({
// 1. 插件配置
plugins: [vue()],

// 2. 路径别名配置(最常用!简化导入路径,不用写../../)✅
resolve: {

alias: {
  '@': path.resolve(__dirname, './src'), // @ 指向 src目录
  '@components': path.resolve(__dirname, './src/components'),
  '@api': path.resolve(__dirname, './src/api')
}

},

// 3. 开发服务器配置(解决跨域!接口代理,必配)✅✅✅
server: {

port: 8080, // 项目启动端口
open: true, // 启动后自动打开浏览器
host: '0.0.0.0', // 允许局域网访问
// 跨域代理:解决前端请求后端接口的跨域问题
proxy: {
  '/api': {
    target: 'https://localhost:44352', // 你的后端接口地址
    changeOrigin: true, // 开启跨域
    rewrite: (path) => path.replace(/^/api/, '') // 去掉/api前缀
  }
}

},

// 4. 打包配置(优化打包体积、解决中文乱码、指定打包目录)✅
build: {

outDir: 'dist', // 打包输出目录
assetsDir: 'assets', // 静态资源目录
charset: 'utf-8', // 解决打包后中文乱码
minify: 'esbuild', // 打包压缩方式,更快更小
sourcemap: false, // 关闭sourcemap,减小打包体积
rollupOptions: {
  // 分包配置,优化打包速度
  output: {
    chunkFileNames: 'js/[name]-[hash].js',
    entryFileNames: 'js/[name]-[hash].js',
    assetFileNames: '[ext]/[name]-[hash].[ext]'
  }
}

},

// 5. CSS配置(全局样式、预处理器)
css: {

preprocessorOptions: {
  scss: {
    // 全局引入scss变量/混合器,无需在每个组件中import
    additionalData: '@import "@/styles/variable.scss";'
  }
}

}
})

六、项目开发 高频实战语法(你之前用到的,补充完整版)
✅ 1. Axios 请求在 Vue3 中的完整写法(你的登录接口,无报错版)
结合你之前的代码,补充 Vue3 + Axios 的标准写法,包含异步、错误捕获、中文不乱码,直接替换你的代码即可
vue
xml 体验AI代码助手 代码解读复制代码

✅ 2. 路由配置(Vue3 + VueRouter4 完整版,项目必配)
vue3-vite-demo 中如果需要路由,安装 npm i vue-router@4,然后在 src/router/index.js 配置,核心写法:
javascript
运行
javascript 体验AI代码助手 代码解读复制代码// src/router/index.js
import { createRouter, createWebHistory } from 'vue-router'
import Home from '@/views/Home.vue'
import Login from '@/views/Login.vue'

const routes = [
{ path: '/', redirect: '/home' },
{ path: '/home', component: Home },
{ path: '/login', component: Login }
]

const router = createRouter({
history: createWebHistory(), // 无#号路由
routes
})

// 路由守卫:登录拦截
router.beforeEach((to, from, next) => {
const token = localStorage.getItem('token')
if (to.path !== '/login' && !token) {

next('/login')

} else {

next()

}
})

export default router

然后在 main.js 引入:
javascript
运行
javascript 体验AI代码助手 代码解读复制代码// main.js
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from './router'

createApp(App).use(router).mount('#app')

七、Vue3 与 Vue2 核心区别(避坑必备,快速记忆)

语法核心:Vue2 是 Options API(选项式),Vue3 是 Composition API(组合式)+