基础学习:
前端最基础的就是 HTML , CSS 和 JavaScript 。
网页设计:HTML和CSS基础知识的学习
HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
动态交互:JavaScript基础的学习
JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。
大厂面试题分享 面试题库
前后端面试题库 (面试必备) 推荐:★★★★★
地址:前端面试题库 web前端面试题库 VS java后端面试题库大全
前言
v-if和v-for哪个优先级更高呢?这是面试官常常问到的一个问题,如果是在三年前,我会毫不犹豫的回答当然是v-for哩,但在3202的今天,如果还这么答,显然是低估了前端技术的日新月异啰。下面我们就来结合编译结果,一探究竟吧。
注意了⚠️,以上问题一般指的是v-for和v-if连用的情况,比如
<div v-for='item in itemList' v-if='item.id === 1' >{{item.name}}</div>
复制代码
剖析
我们都知道,这个v-if是条件渲染,v-for是列表渲染,都是模版语法,叫这名字当然是因为它们只能在Vue的模版当中用啦。
这些模版语法不是Javascript原生的,因此需要经过一个编译的过程,将它们转为render函数。
经历render函数–>虚拟DOM–>真实DOM 这样的过程,呈现到页面当中。
因此,剖析这个问题的关键就是看编译成的render函数
。
在此有请Vue官方设计的工具,可以让我们实时看到编译成的render函数。
首先介绍下我们的例子,无非就是渲染一个列表
<template>
<ul>
<li v-for="item in list" :key="item.id" v-if="item.id === 1"></li>
</ul>
</template>
<script>
// 这里省略掉变成响应式的过程,因为vue2 3 写法不一
list:[
{name:"JetTsang",id:1},
{name:"juejin",id:2},
{name:"baidu",id:3},
]
<script>
复制代码
vue2中的编译结果
在V2当中,会看到如下的render函数
简单解释一下,这里的_c()就是vm.$createElement(),意思是创建一个虚拟的element,就是返回值是VNode。
_l就是renderlist函数,第2个参数是一个回调函数,里面会传入的item。
函数里面的item.id===1不就是v-if里的内容吗?
这里总结一下就是:先走v-for的逻辑,再根据v-if的条件去判断是否渲染li这个元素,如果没命中v-if的条件,则渲染一个注释节点。
ps:注释节点长这样
不难发现,这里多少有点浪费性能了,如果我list里面有好多个,但符合v-if条件的却比较少,这样先循环,在判断的逻辑,编译出来的render函数效率就比较低下。
其实,如果想要在vue2里的实现这样的逻辑,写代码的时候,就会有提示,让我们先过滤掉list里面的数组,再在模版里面使用。
最后
整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》
端面试题:常用算法》**
[外链图片转存中…(img-H548Chs8-1715796822311)]
[外链图片转存中…(img-w1wAfoB1-1715796822311)]
[外链图片转存中…(img-ezy74Xu0-1715796822312)]