赞
踩
Vue 官推消息,Vue 2 将于 2023年12月31日 停止维护(EOL)。
Vue 2.0 发布于 2016 年,迄今为止已有7年时间。Vue 2.0 的发布是其成为主流框架过程中的一个重要里程碑。
然而随着 2020 年 9 月份发布的 Vue 3 及其生态系统的日渐成熟,Vue 2.0 也渐渐退出了我们的视线,众多开发者们也在逐渐向 Vue3 靠拢。
早在2023年初,众多公司的面试重点就已经开始向Vue3倾斜。
2024有跳槽打算的朋友,拿下Vue3是重中之重。
<template>
、逻辑<script>
与样式<style>
封装在单个文件中。<KeepAlive>
缓存树的一部分,当组件被插入到 DOM 中时调用。<KeepAlive>
缓存树的一部分,当组件从 DOM 中被移除时调用。异步请求在哪一步发起?
v-model
指令来实现。在Vue.js 2及之前版本中,我们需要手动编写事件处理函数来更新视图或模型,而在Vue.js 3中,这些工作已经被自动化了。v-model
应用于表单元素(如输入框、复选框等)时,Vue会为该元素创建一个名为"value"的属性,并且还会为其添加相关的事件监听器。computed
是属性调用,在定义函数时以属性的形式调用,methods
是方法调用,在定义函数时以方法的形式调用,要加()
computed
是计算属性,是有缓存的,当它的依赖属性改变的时候,才会进行重新计算,如果数据没有改变,它是不会运行的。methods
是方法,没有缓存功能,只要你调用一次,不管数据是否改变,它都是执行。computed
比 methods
性能好一点,避免重复执行。watch
方法来监听响应式数据的变化,并在数据变化时执行回调函数。import { watch } from 'vue'
const state = reactive({
count: 0
})
watch(() => state.count, (newValue, oldValue) => {
console.log(newValue, oldValue)
})
v-model
本质上就是语法糖,在使用v-model
后既绑定了数据,又添加了一个@input
事件监听
<input v-model='message' />
<input :value='message' @input='message = $event.target.value'>
v-model
实现双数据绑定,其实就是在输入的时候触发元素的input事件,通过这个语法糖,也能够实现父子组件数据的双向绑定input
的 value
指向了 messgae
变量input
事件的时候去动态把 message
设置为目标值:<input v-model='message' />
// 等同于
<input
:value="message"
@input="message=$event.target.value"
>
v-model
默认会利用名为 value
的 prop
和名为 input
的事件prop
和$.emit
实现。 因此父组件 v-model
语法糖本质上可以修改为:<child :value="message" @input="function(e){message = e}"></child>
v-model
属性来配置子组件接收的prop
名称,以及派发的事件名称。【注意】
this.$router
和this.$route
useRoute
和useRouter
方法,创建route
和router
对象,如:import { useRoute } from "vue-router";
const route = useRoute();
1. 路由路径参数(Route Params)
{
path: '/user/:id',
component: User
}
console.log(route.params.id);
2. 查询参数(Query Params):
{
path: '/user',
component: User
}
console.log(route.query.id);
路由元信息(Route Meta)
{
path: '/user',
component: User,
meta: {
id: 123
}
}
console.log(route.meta.id);
命名路由(Named Routes)
{
path: '/user',
name: 'user',
component: User
}
router.push({ name: 'user', params: { id: 123 } })
Props传递参数
{
path: '/user',
component: User,
props: true
}
props: ['id']
Vuex状态管理
// 跳转方法,会产生历史记录
this.$router.push("/login");
// 跳转方法,不会产生提示记录
this.$router.replace("/login");
// 跳转方法,同:window.history.go()
// 参数:正:前进,负:后退,0:刷新
this.$router.go(-1)
// 字符串,等于当前路由对象的路径,会被解析为绝对路径,如/home/ews
this.$route.path
// 对象,包含路由中的动态片段和全匹配片段的键值对,不会拼接到路由的url后面
this.$route.params
// 对象,包含路由中查询参数的键值对。会拼接到路由url后面
this.$route.query
// 路由规则所属的路由器
this.$route.router
// 当前路由的名字,如果没有使用具体路径,则名字为空
this.$route.name
Vue中常用的修饰符有以下几种:
$forceUpdate
是Vue.js中的一个实例方法,用于强制组件重新渲染。它的原理是触发组件的更新流程,将组件的虚拟 DOM 树重新生成,并对比新旧虚拟 DOM 树的差异,最终将变化的部分更新到真实的 DOM 上。$forceUpdate
方法被调用后,会触发组件的更新标记(dirty);Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。