return {
ruleForm,//Q:为什么上面要用.value的形式,A:这里会自动解绑
onSubmit,
resetForm
}
}
8、如何调用子组件内setup内的方法
-
子组件在setup写好方法
method
,并通过return
暴露出去 -
父组件调用子组件时为其添加
ref
属性 -
父组件setup内拿到子组件添加的
ref
属性property
,再通过property.value.method()
调用
子组件
// 渲染从父级接受到的值
父组件
<button @click=“sendValue”>send
// 这里ref接受的字符串,要setup返回的ref类型的变量同名
9、vue3如何setup函数如何实现多属性监听,如何实现深度监听
-
引入
watch
,watch最后返回unwatch方法,在调用该方法将停止监听 -
watch传入数组,注意,监听的是普通类型可直接输入,若是引用类型,则需要输入函数返回的值,例如要想同时监听
data.form.c.c1
属性和ddd
属性 -
对于watch第三个传参
deep
和immediate
都不陌生,而flush
的作用是决定callback的执行时机,有三个选项,pre
(默认),post
,sync
,分别对应watch在组件更新前,后,时执行callback.
const ddd = ref(“wwww”);
const data = reactive({
form: {
a: 1,
b: 2,
c: {
c1: “c1”,
c2: “c2”,
},
},
haha: “haha”,
});
const unwatch = watch(
[ddd, () => data.form.c.c1],//传入数组
(newValue, oldValue) => {//结构的也是数组,
//也可以写成([nowddd,nowC1],[preddd,preC1])=>{…}
console.log(new--->${newValue}
);
console.log(old--->${oldValue}
);
console.log(newValue[0]);
console.log(newValue);
},
{ deep: true }//第三个参数传入deep,immediate,flush属性
);
setTimeout(() => {
ddd.value = “eee”;
}, 1000);
setTimeout(() => {
data.form.c.c1 = “2222”;
setTimeout(() => {
unwatch();//这里异步使用unwatch方法,后面的ddd.value = "ffff"将不被监听
});
}, 2000);
setTimeout(() => {
ddd.value = “ffff”;
}, 3000);
10、vue3的watchEffect有什么用
- 它是一个与侦听器,作用和watch差不多,但是不能拿到
newValue
和oldValue
,下面是它的定义,传参effect函数
和option对象
,effect函数
又可传入onInvalidate函数
,option对象
可传入flush,onTrack,onTrigger
,flush
与watch的flush相同,onTrack,onTrigger
又可传入DebuggerEvent 函数
用于开发调试,返回与watch相同返回一个停止侦听的函数
function watchEffect(
effect: (onInvalidate: InvalidateCbRegistrator) => void,
options?: WatchEffectOptions
): StopHandle;
interface WatchEffectOptions {
flush?: “pre” | “post” | “sync”;
onTrack?: (event: DebuggerEvent) => void;
onTrigger?: (event: DebuggerEvent) => void;
}
interface DebuggerEvent {
effect: ReactiveEffect;
target: any;
type: OperationTypes;
key: string | symbol | undefined;
}
type InvalidateCbRegistrator = (invalidate: () => void) => void;
type StopHandle = () => void;
- 传参的
effect函数
会在组件beforeCreate
之前就执行一次,若该函数里使用到了某些数据,将监听该数据,当监听的数据发生变化时就会(若watchEffect
传入了onInvalidate函数
,则会先执行onInvalidate函数
后)再次执行effect函数
.
This is an about page
{{ count }}
{{ test }}
<button @click=“jump”>jump
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
最后
面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-gxE98jrN-1712005147496)]
最后
面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
[外链图片转存中…(img-3g7ZSJMe-1712005147497)]
[外链图片转存中…(img-R2tXwNK8-1712005147497)]
[外链图片转存中…(img-ovSt6Qzd-1712005147497)]
[外链图片转存中…(img-aA7rA8HX-1712005147498)]