Vue3基础知识
发布人:shili8
发布时间:2025-02-01 17:45
阅读次数:0
**Vue3 基础知识**
###1. Vue3 简介Vue3 是一个用于构建用户界面的前端框架,提供了一个高效、易用的 API 来管理应用程序的状态。它是 Vue2 的升级版本,带来了许多新特性和改进。
###2. Vue3 的核心概念####2.1 Composition APIComposition API 是 Vue3 中的一个新的 API,它允许你将组件逻辑分解为更小的、独立的函数,这样可以更好地管理组件之间的依赖关系。Composition API 提供了 `setup` 函数,用于定义组件的状态和计算属性。
javascript// Composition API 示例<template> <div>{{ count }}</div> </template> <script> export default { setup() { const count = ref(0); return { count }; }, }; </script>
####2.2 RefsRefs 是一种用于存储组件状态的特殊类型。它们可以被用来存储原始值或计算属性。
javascript// Refs 示例<template> <div>{{ count }}</div> </template> <script> export default { setup() { const count = ref(0); return { count }; }, }; </script>
####2.3 Computed PropertiesComputed properties 是一种用于计算组件状态的特殊类型。它们可以被用来存储原始值或计算属性。
javascript// Computed Properties 示例<template> <div>{{ doubleCount }}</div> </template> <script> export default { setup() { const count = ref(0); const doubleCount = computed(() => count.value *2); return { count, doubleCount }; }, }; </script>
####2.4 WatchersWatchers 是一种用于监视组件状态的特殊类型。它们可以被用来存储原始值或计算属性。
javascript// Watchers 示例<template> <div>{{ count }}</div> </template> <script> export default { setup() { const count = ref(0); watch(count, (newCount) => { console.log(`Count changed to ${newCount}`); }); return { count }; }, }; </script>
###3. Vue3 的生命周期Vue3 中的生命周期与 Vue2 相同,包括以下阶段:
* `beforeCreate`:组件创建之前* `created`:组件创建之后* `beforeMount`:组件挂载之前* `mounted`:组件挂载之后* `beforeUpdate`:组件更新之前* `updated`:组件更新之后* `beforeDestroy`:组件销毁之前* `destroyed`:组件销毁之后
javascript// Vue3 生命周期示例<template> <div>{{ count }}</div> </template> <script> export default { data() { return { count:0 }; }, beforeCreate() { console.log('beforeCreate'); }, created() { console.log('created'); }, beforeMount() { console.log('beforeMount'); }, mounted() { console.log('mounted'); }, beforeUpdate() { console.log('beforeUpdate'); }, updated() { console.log('updated'); }, beforeDestroy() { console.log('beforeDestroy'); }, destroyed() { console.log('destroyed'); }, }; </script>
###4. Vue3 的事件处理Vue3 中的事件处理与 Vue2 相同,包括以下阶段:
* `@click`:点击事件* `@dblclick`:双击事件* `@mousedown`:鼠标按下事件* `@mouseup`:鼠标抬起事件* `@mouseover`:鼠标移动到元素上事件* `@mouseout`:鼠标移出元素事件
javascript// Vue3事件处理示例<template> <div @click="handleClick">点击我</div> </template> <script> export default { methods: { handleClick() { console.log('点击了'); }, }, }; </script>
###5. Vue3 的表单验证Vue3 中的表单验证与 Vue2 相同,包括以下阶段:
* `v-model`:绑定表单数据* `:rules`:定义验证规则* `@input`:输入事件* `@blur`:失焦事件
javascript// Vue3 表单验证示例<template> <div> <input v-model="username" type="text" /> <button @click="handleSubmit">提交</button> </div> </template> <script> export default { data() { return { username: '' }; }, methods: { handleSubmit() { if (this.username.trim() === '') { console.log('用户名不能为空'); } else { console.log('提交成功'); } }, }, }; </script>
###6. Vue3 的路由Vue3 中的路由与 Vue2 相同,包括以下阶段:
* `router-link`:定义路由链接* `@click`:点击事件* `$route`:获取当前路由信息* `$router`:获取当前路由实例
javascript// Vue3 路由示例<template> <div> <router-link to="/home">首页</router-link> <router-link to="/about">关于我们</router-link> </div> </template> <script> export default { methods: { handleRouteChange() { console.log(this.$route); }, }, }; </script>
###7. Vue3 的插件Vue3 中的插件与 Vue2 相同,包括以下阶段:
* `install`:安装插件* `$on`:监听事件* `$off`:取消事件监听* `$emit`:触发事件
javascript// Vue3 插件示例<template> <div> <button @click="handleClick">点击我</button> </div> </template> <script> export default { methods: { handleClick() { console.log('点击了'); }, }, }; </script>
###8. Vue3 的全局过滤器Vue3 中的全局过滤器与 Vue2 相同,包括以下阶段:
* `filter`:定义过滤器* `$filters`:获取全局过滤器实例
javascript// Vue3 全局过滤器示例<template> <div>{{ count | formatCount }}</div> </template> <script> export default { data() { return { count:0 }; }, }; </script>
###9. Vue3 的全局指令Vue3 中的全局指令与 Vue2 相同,包括以下阶段:
* `directive`:定义指令* `$directives`:获取全局指令实例
javascript// Vue3 全局指令示例<template> <div v-my-directive="count">我是全局指令</div> </template> <script> export default { data() { return { count:0 }; }, }; </script>
###10. Vue3 的生命周期钩子Vue3 中的生命周期钩子与 Vue2 相同,包括以下阶段:
* `beforeCreate`:组件创建之前* `created`:组件创建之后* `beforeMount`:组件挂载之前* `mounted`:组件挂载之后* `beforeUpdate`:组件更新之前* `updated`:组件更新之后* `beforeDestroy`:组件销毁之前* `destroyed`:组件销毁之后
javascript// Vue3 生命周期钩子示例<template> <div>{{ count }}</div> </template> <script> export default { data() { return { count:0 }; }, beforeCreate() { console.log('beforeCreate'); }, created() { console.log('created'); }, beforeMount() { console.log('beforeMount'); }, mounted() { console.log('mounted'); }, beforeUpdate() { console.log('beforeUpdate'); }, updated() { console.log('updated'); }, beforeDestroy() { console.log('beforeDestroy'); }, destroyed() { console.log('destroyed'); }, }; </script>
###11. Vue