为什么defineProps宏函数不需要从vue中import导入?-牛翰网

为什么defineProps宏函数不需要从vue中import导入?

前言 我们每天写vue代码时都在用defineProps,但是你有没有思考过下面这些问题。为什么defineProps不需要import导入?为什么不能在非setup顶层使用defineProps?defineProps是如何将声明的 prop...
9个月前
0529
天天用defineEmits宏函数,竟然不知道编译后是vue2的选项式API?-牛翰网

天天用defineEmits宏函数,竟然不知道编译后是vue2的选项式API?

你知道defineEmits 宏函数经过编译后其实就是vue2的选项式API吗?你知道为什么 Vue 的 defineEmits 宏函数不需要 import 导入就可用吗?为什么defineEmits的返回值等同于$emit 方法用于在组件...
9个月前
0466
面试官:只知道v-model是:modelValue和@onUpdate语法糖,那你可以走了-牛翰网

面试官:只知道v-model是:modelValue和@onUpdate语法糖,那你可以走了

你知道v-model指令是如何变成组件上的modelValue属性和@update:modelValue事件呢?这一过程是在编译时还是运行时进行的呢?
9个月前
0377
父组件明明使用了v-model,子组件竟然可以不用定义props和emit抛出事件,快来看看吧-牛翰网

父组件明明使用了v-model,子组件竟然可以不用定义props和emit抛出事件,快来看看吧

使用defineModel时,为什么子组件内没有任何关于props的定义和emit事件触发的代码?修改defineModel返回值会修改父组件上绑定的变量,这是否破坏了vue的单向数据流呢?
9个月前
04315
看不懂来打我,vue3如何将template编译成render函数-牛翰网

看不懂来打我,vue3如何将template编译成render函数

前言 在之前的 通过debug搞清楚.vue文件怎么变成.js文件 文章中我们讲过了vue文件是如何编译成js文件,通过那篇文章我们知道了,template编译为render函数底层就是调用了@vue/compiler-sfc包暴...
9个月前
01037
面试官:来说说vue3是怎么处理内置的v-for、v-model等指令?-牛翰网

面试官:来说说vue3是怎么处理内置的v-for、v-model等指令?

前言 最近有粉丝找到我,说被面试官给问懵了。 粉丝:面试官上来就问“一个vue文件是如何渲染成浏览器上面的真实DOM?”,当时还挺窃喜这题真简单。就简单说了一下先是编译成render函数、然后根...
9个月前
03510
面试官:在原生input上面使用v-model和组件上面使用有什么区别?-牛翰网

面试官:在原生input上面使用v-model和组件上面使用有什么区别?

前言 还是上一篇面试官:来说说vue3是怎么处理内置的v-for、v-model等指令? 文章的那个粉丝,面试官接着问了他另外一个v-model的问题。 面试官:vue3的v-model都用过吧,来讲讲。 粉丝:v-mode...
9个月前
0409
vue3早已具备抛弃虚拟DOM的能力了-牛翰网

vue3早已具备抛弃虚拟DOM的能力了

前言 jquery时代更新视图是直接对DOM进行操作,缺点是频繁操作真实 DOM,性能差。react和vue时代引入了虚拟DOM,更新视图是对新旧虚拟DOM树进行一层层的遍历比较,然后找出需要更新的DOM节点进...
9个月前
0335
vue3编译优化之“静态提升”-牛翰网

vue3编译优化之“静态提升”

本文讲了vue3是如何实现编译优化之“静态提升”,静态节点无需每次执行render函数都去生成一次虚拟DOM
9个月前
07011
终于搞懂了!原来 Vue 3 的 generate 是这样生成 render 函数的-牛翰网

终于搞懂了!原来 Vue 3 的 generate 是这样生成 render 函数的

前言 在之前的 面试官:来说说vue3是怎么处理内置的v-for、v-model等指令? 文章中讲了transform阶段处理完v-for、v-model等指令后,会生成一棵javascript AST抽象语法树。这篇文章我们来接着讲...
9个月前
04714