前端
文章平均质量分 66
千锋IT教育
定期分享IT学习技术资料(java、前端、大数据、Python、全链路UI/UE等)
展开
-
40 道Typescript 面试题及其答案与代码示例(上)
延伸阅读:TypeScript 官方手册 — keyof Type Operator、TypeScript 官方手册 — in Operator(https://www.typescriptlang.org/docs/handbook/advanced-types.html#keyof-type-operator)延伸阅读:TypeScript 官方手册——接口(https://www.typescriptlang.org/docs/handbook/interfaces.html)原创 2023-11-13 11:10:19 · 597 阅读 · 1 评论 -
JavaScript全解析——canvas 入门(下)
●我们发现, 到现在为止, canvas 的绘制, 描边, 填充都很简单。●注意 : 填充的时候可以不进行图形闭合, 会自动闭合图形以后进行填充。●其实我们的填充和顺时针逆时针有关系, 但是不是简单的顺逆时针的问题。●这样, 就会按照我们绘制的路线, 以填充的形式出现一个封闭图形。●这是因为, 在填充的时候, 就是会一次性把所有的内容都会填充好。●这是两个矩形对接在一起, 一个是顺时针绘制, 一个是逆时针绘制。●两个正方形都是这个方向绘制的, 我们接下来把描边的线去掉。原创 2023-05-04 20:07:04 · 1394 阅读 · 0 评论 -
JavaScript全解析——canvas 入门(上)
也就是说, 在描述线宽的时候, 实际上会从 0.5px 的位置绘制到 1.5px 的位置。○从坐标 ( 100, 100 ) 绘制到坐标 ( 300, 100 )○从坐标 ( 100, 100 ) 绘制到坐标 ( 300, 100 )○从坐标 ( 100, 100 ) 绘制到坐标 ( 300, 100 )所以在设置线段样式的时候, 会默认按照最后一次设置的样式来绘制所有的线段。●所以, 我们在进行 canvas 绘制内容的时候, 涉及到线段的时候。原创 2023-05-04 20:04:34 · 3399 阅读 · 0 评论 -
案例-字符串翻转
●JSON格式字符串: '{"name":"Jack","age":18,"gender":"男"}'○在key 和 value 以外的位置只能有 {} [] : , 不能有其它的符号。○字符串内的key和value必须要使用双引号("")包裹,纯数字和布尔值除外。●JSON 可以将 js 对象中表示的一组数据转换为字符串。○语法: JSON.stringify(js数据格式)○语法: JSON.parse(JSON数据格式)○在集合内最后一项的末尾不能有多余的逗号(,)○返回值: 转换好的数据格式。原创 2023-05-04 20:00:52 · 606 阅读 · 0 评论 -
DOM操作 - 元素操作方式(上)
●实际上就是操作元素的原生属性,只不过在js中class是一个关键字,所以我们操作原生属性改用className。●每一个元素都有一个属性叫做 classList,是一个类似数组的集合, 里面记录了元素所有的类名。●以下的所有操作属性的方式和方法, 均不操作 类名(class) 和 样式(style)●元素属性:书写在标签身上, 一个 key=value 的键值对, 叫做一条属性。●语法: 元素.classList.add('要添加的类名')○里面记录的是该元素身上所有的 data- 开头的自定义属性。原创 2023-05-04 19:55:12 · 890 阅读 · 0 评论 -
DOM操作-获取元素的方式
●哪怕你获取的 class 只有一个,那也是获取一组元素,只不过这一组中只有一个 DOM 元素而已。●哪怕真的只有一个这个标签名,那么也是获取一组元素,只不过这一组中只有一个 DOM 元素而已。●获取到的是一组元素,是一个长得和数组一样的数据结构,但是不是数组,是 伪数组。●因为页面中可能有多个元素的 class 名称一样,所以获取到的是一组元素。●获取到的是一组数据,也是需要用索引来获取到准确的每一个 DOM 元素。●因为页面中可能有多个元素的 标签 名称一样,所以获取到的是一组元素。原创 2023-05-04 19:40:59 · 727 阅读 · 0 评论 -
大厂面试 TypeScript 套题,看看你能做出几个
所有题目均为 NodeJS 环境下,TypeScript 编程题。NodeJS 版本建议 v14 及以上。代码题以本地可以运行通过为准,Node 版本不够则无法运行高版本语法。请提前配置好开发环境。某大厂给前端面试者出了一套 TypeScript 笔试题,要求面试者在线实时答题。这种面试题考察的是应聘者的 TS 硬实力,先把题目和要求给出来,你试试能做出来几个。NodeJS 环境运行 TS 文件推荐使用。原创 2023-04-17 18:54:09 · 593 阅读 · 0 评论 -
前端需要学哪些东西
现在前端语言也成为世界上最流行的语言之一,前端语言也有着很多不可或缺的有点,JavaScript的广泛支持、丰富的交互性和动态性、快速的开发周期、跨平台和跨浏览器兼容性、有良好的可扩展性、多样化的应用场景等等。有了这个前端学习路线小伙伴们学习的效率应该会提高不少,剩下的就需要自己坚持不懈的学习和练习。俗话说“万丈高楼平地起,成功只能靠自己”,希望能够帮助更多的小伙伴早日成为一名优秀的前端开发工程师!原创 2023-04-11 13:28:32 · 140 阅读 · 0 评论 -
前端学习路线(2023版)超详细
其中包含了元素和属性、表单和图形处理、CSS基本语法与选择器、文本、边框、轮廓与颜色、SS列表、表单与表格样式、CSS样式层叠与继承、PhotoShop的使用和图片整合、markman、pxcook工具使用等等小点。)其中包含了BFC、IFC、GFC、FFC、Flex弹性布局、网格布局、媒体查询、viewport、remvw、 dpr与ppi、PC端网站布局规范响应式布局、移动端设备适配最佳实践、流式布局 (100%布局)等小点。能够实现多端开发并拥有多端开发能力,整合资源,实现跨平台跨设备的架构能力。原创 2023-04-11 09:44:43 · 3357 阅读 · 0 评论 -
元素类型介绍-全面解析display属性
大家都知道display可以转换元素类型,但是大多人其实对于display的属性值,比较熟悉的只是block和inline以及inline-block和none,对于其他属性值,了解都比较一般,在平时开发过程中也不太用得到其他的属性值,但是每次用这个属性的时候,脑海里都会冒出来,其他的属性值,设置了会是怎么样、有什么样的特点,这个奇奇怪怪的想法,所以找了个时间,写下这篇文章, 跟我有相同可爱想法的伙伴,如果感兴趣的,可以驻步瞄一眼哟;(1) none此单词的意思是没有一个、毫无的意思;原创 2023-04-07 15:08:09 · 1471 阅读 · 0 评论 -
每个开发人员都需要掌握的10 个基本 SQL 命令
与附加匹配列的联接不同,UNION 可以附加不相关的行,前提是它们具有相同的列数和名称。因此,使用左连接,我们可以将两个表合并为一个由公共列连接的表,在本例中,按名称连接。在这种情况下,我们重复前面的查询,只计算 eyes_color 列并使用 DISTINCT 命令。SQL 中的 SELECT 命令是最简单但也是最重要的命令之一,每个查询都以 SELECT 开头,这就是您从数据库中获取数据的方式。我们总是需要指出从哪里获取数据,而这正是 FROM 命令发挥作用的地方,它指示我们查询的表源是什么。原创 2023-03-21 13:45:30 · 946 阅读 · 0 评论 -
7大提高 React 性能的技巧
当状态改变和协调发生时,它将重新初始化整个组件实例并保持新的状态值。这对我们来说意味着,在协调期间,将重新创建所有函数实例,以便能够考虑新的状态值,我们不需要它,在大多数情况下,函数可以只依赖于几个状态,我们不想重新创建不依赖于已更改状态的函数实例。这段代码的问题是,即使其他一些状态发生变化,比如 otherState,foo 也会被重新创建,这是我们实际上不想要的。意思是,如果我们有一个巨大的组件,它有很多状态(不需要相互依赖)并且其中一个状态发生了变化,它将重新渲染整个组件元素,这绝对不是我们想要的。原创 2023-03-10 10:25:55 · 287 阅读 · 0 评论 -
如何使用vue创建一个完整的前端项目
安装Node.js和npm:Vue.js是基于Node.js开发的,因此在开始搭建Vue项目之前,需要先安装Node.js和npm(Node.js的包管理器)。以上就是搭建Vue项目的完整流程。需要注意的是,在实际开发中还需要了解Vue.js的基本语法和常用API,以及如何使用Vue插件、组件、路由等功能来实现具体的业务需求。安装Vue CLI:Vue CLI是Vue.js官方提供的命令行工具,可以帮助我们快速创建和管理Vue项目。编写代码:项目创建成功并启动之后,就可以开始编写Vue代码了。原创 2023-03-09 17:49:15 · 948 阅读 · 0 评论 -
怎样在vue中导入组件?
请注意,在导入组件之前,确保你已经正确安装并配置了 Vue.js,以便它能够正确加载和解析组件。在你的 Vue 项目中创建一个新的组件或者使用一个已经存在的组件。例如,假设你有一个名为。在上面的示例中,我们将。在模板中使用该组件。在上面的示例中,我们在。在需要使用该组件的另一个组件中,使用。原创 2023-03-08 13:16:09 · 2968 阅读 · 0 评论 -
CSS样式怎样修改滚动条的样式
属性是 CSS3 的新属性,可能不被所有浏览器支持。在不支持的浏览器中,可以考虑使用 JavaScript 或其他技术来实现自定义滚动条样式。就是针对 WebKit 浏览器的样式设置。请注意,不同浏览器可能会有不同的CSS属性名称和前缀,如上述代码示例中的。请注意,通用写法中的。原创 2023-03-08 12:30:55 · 2217 阅读 · 1 评论 -
vue组件使用方法
Vue 组件是 Vue.js 应用中可复用的代码块,通过组件可以将一个页面拆分为多个独立的部分,使代码更加清晰,结构更加简洁。以上是使用 Vue 组件的基本步骤,当然还有很多其他的配置和使用方式,你可以参考 Vue.js 官方文档进行学习和使用。3. 将组件挂载到实例上:创建 Vue.js 实例时,可以通过。1. 创建组件:在 Vue.js 中,可以通过。原创 2023-03-07 13:48:08 · 471 阅读 · 0 评论 -
Redis集群方案应该怎么做?
Redis提供了多种集群方案,包括Redis Sentinel和Redis Cluster。因此,在分布式环境中,Redis采用了集群架构,以实现高可用性、横向扩展等需求。:在测试通过后,可以将Redis集群上线,并开始使用它来处理数据。:为了使Redis集群能够处理大量数据,需要将数据分片到各个节点中。:配置Redis集群的各个节点,包括主节点和从节点。总的来说,Redis集群方案的实现需要对Redis集群的各个方面进行详细的规划和配置,包括。数据分片将数据分散到不同的节点上,从而实现数据的横向扩展;原创 2023-03-07 10:37:38 · 544 阅读 · 0 评论 -
app里未读消息已读、未读是怎么设计的?
这是最常见的设计,用户打开应用程序后,未读消息会用一个特殊的标记(通常是未读计数器)标识出来。此外,该模式还可以提高用户体验,因为用户可以清楚地了解哪些内容是新的,并且可以在需要时快速的找到它们。综上所述,未读/已读设计模式是一种非常重要的用户界面设计模式,它可以帮助用户更好地管理和查找他们的内容,并提高用户体验。:在这种设计中,用户可以在消息列表中向左或向右滑动消息来将其标记为已读。综上所述,Redis是一个非常适合处理已读未读状态的数据的数据库,它可以提供快速、可扩展、可靠、灵活和高效的解决方案。原创 2023-03-07 10:11:35 · 1787 阅读 · 0 评论 -
Vue.js 组件销毁有几种情况?
显式销毁:在组件实例上调用 $destroy() 方法可以显式销毁一个组件实例,它会解除所有的绑定并移除 DOM 中的元素。在组件销毁时,Vue.js 会自动执行一些生命周期钩子函数,包括 beforeDestroy() 和 destroyed()。路由切换:当使用 Vue.js 路由切换时,旧的组件实例会被销毁,新的组件实例会被创建并挂载到 DOM 中。条件渲染:当一个组件通过 v-if 或 v-show 指令被移除时,它会被销毁。父组件销毁:当一个父组件被销毁时,它的所有子组件也会被销毁。原创 2023-03-06 16:25:03 · 7831 阅读 · 3 评论 -
10个必须知道的JavaScript技巧,让你成为更好的程序员
很多时候,我们的网站会不断调整功能,有新功能也有过时的功能,但我总是担心以后会用到,所以我们总是注释掉,并没有删除。大多数时候,我们使用 .length 来判断字符串的长度是安全的,但是在表单输入的情况下要小心。因此,亲爱的朋友们,请你们不要学我,你应该给变量一个适当且有意义的名称。这是没有经验的,我们应该给出一个用户友好的提示,而不是什么都不做。以上这样的代码,那真是太糟了,如果你的同事这样写代码,你会揍他吗?与其不写代码注释,也不要写无意义的代码注释,因为它浪费了你的时间。原创 2023-03-02 14:42:33 · 280 阅读 · 0 评论 -
一篇文章弄清楚啥是数组和集合
数组和集合多语言都有,数组是集合的一种,是一种有序的集合,不面向对象,面向过程的也有。原创 2023-02-23 16:22:03 · 468 阅读 · 0 评论 -
koa中间件的实现原理
每次传入的next都是调用下一个middleware,这样是一个递归的过程,结束条件是最后一个middleware的next是用户传入的。返回的是一个Promise.resolve包装之后的调用,而不是同步的调用,所以这是一个异步递归,异步递归比同步递归的好处是可以被打断,如果中间有一些优先级更高的微任务,那么可以先执行别的微任务。实现的时候还有一些细节,一个是递归最好做成尾递归的形式,而是用异步递归而不是同步递归,第三就是形式上用函数复合的形式,这样复合之后的中间件还可以继续复合。原创 2023-02-21 16:44:08 · 288 阅读 · 0 评论 -
前端工程师面试题10条必会笔试题
href是Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,如果我们在文档中添加那么浏览器会识别该文档为css文件,就会并行下载资源并且不会停止对当前文档的处理。有的网站展示它,有的则收集它,有的寻求,有的操作,还有的网站甚至会包含以上的种种,但相同点是它们全都涉及到内容。简述title与h1的区别,b与strong的区别,i与em的区别。原创 2023-02-20 17:16:17 · 553 阅读 · 0 评论 -
Promise的使用及原理
此文章主要讲解核心思想和基本用法,想要了解更多细节全面的使用方式,请阅读官方API 这篇文章假定你具备最基本的异步编程知识,例如知道什么是回调,知道什么是链式调用,同时具备最基本的单词量,例如page、user、promise、then、resovle、reject、pay、fix、order等等,如果你对这些单词非常陌生,那么你需要先花点时间补充一下你的英语。懂了,所以这个resolve函数,必须在异步任务的最后调用(例如ajax的回调方法),相当于告诉Promise对象,该任务结束,请开始下一个。原创 2023-02-17 17:39:50 · 631 阅读 · 0 评论 -
如何构建 Vue 项目基本结构
在 components 文件夹下创建 Header.vue 组件: /src/components/Header.vue。在 components 文件夹下创建 Modal.vue 组件: /src/components/Modal.vue。在 components 文件夹下创建 Main.vue 组件: /src/components/Main.vue。准备 Header, Main, 和 Modal 三个组件。1、reset.css 样式。3、Header 组件。5、modal 组件。原创 2023-02-14 14:21:01 · 134 阅读 · 0 评论 -
React可以解决前端开发中的哪些痛点
3.Fiber算法, React16提出了Fiber架构,其能够将任务分片,划分优先级,同时能够实现类似于操作系统中对线程的抢占式调度,非常强大, 对于因为JavaScript的单线程特性,单个同步任务耗时太长,出现卡顿的问题就可以得到解决, 这进一步弥补了React在组件更新机制方面的缺陷.5.结合shouldComponentUpdate等方法, 可以避免不必要的组件更新, 实现更少的cpu消耗, 程序员可以从代码的角度介入到组件更新效率的控制过程中。DOM元素,再设置属性)像React框架, 它在。原创 2023-02-06 13:17:21 · 2834 阅读 · 0 评论 -
为什么react比vue更适合大型应用?
3.Fiber算法, React16提出了Fiber架构,其能够将任务分片,划分优先级,同时能够实现类似于操作系统中对线程的抢占式调度,非常强大, 对于因为JavaScript的单线程特性,单个同步任务耗时太长,出现卡顿的问题就可以得到解决, 这进一步弥补了React在组件更新机制方面的缺陷.5.结合shouldComponentUpdate等方法, 可以避免不必要的组件更新, 实现更少的cpu消耗, 程序员可以从代码的角度介入到组件更新效率的控制过程中.DOM元素,再设置属性)像React框架, 它在。原创 2023-01-17 10:53:22 · 6806 阅读 · 1 评论 -
find和filter有什么区别
JavaScript 在 ES6 上有很多数组方法,每种方法都有独特的用途和好处。在开发应用程序时,大多使用数组方法来获取特定的值列表并获取单个或多个匹配项。在列出这两种方法的区别之前,我们先来一一了解这些方法。原创 2023-01-13 15:42:06 · 524 阅读 · 0 评论 -
什么是Redis持久化,如何理解?
其实redis就是一种高级的以键值对形式存储数据的数据库,而它的好处就是他可以支持数据的持久化,其实redis之所以会有这样的优点,主要是因为,redis的数据都是存放在内存中的,如果不配置持久化,那么在redis进行重启的时候,就会造成数据的丢失,于是redis开启了数据的持久化功能,将所有的数据保存到磁盘中,当redis重启之后,就可以直接从磁盘中恢复数据,所以。,这种持久化方式就是将redis执行的每一次命令记录到单独的日志文件当中,当还原数据时,只需要将这些备份的指令再重新执行一遍即可。转载 2022-12-21 10:57:33 · 104 阅读 · 0 评论 -
Vue-Router路由与配置
这样的话,我们就可以方便的根据路由的不同进行组件之间的映射。Vue-router里面提供的路由守卫可以分为三大类,分别是全局路由守卫、单个的路由钩子的路由守卫、路由组件内部的路由守卫。我们可以给路由对象配置name属性,当我们在跳转的时候直接写name:inner就会快速的找到此name属性所对应的路由,不需要写大量的urlpath路径了。传统的项目大多使用多页面结构,需要切换内容的时候我们往往会进行单个html文件的跳转,这个时候因受到网络、性能的影响,浏览器会出现不定时间的空白界面,用户体验不好。原创 2022-12-19 11:17:41 · 333 阅读 · 0 评论 -
你可能需要的6个React开发小技巧
但是,当项目的代码量足够大并且有很多JSX条件时,事情很快就会失控。过多的 if 语句会导致组件混乱,因此,我们可以将多个条件提取到包含 switch 语句的单独组件中。如果我们需要根据用户的不同状态显示Foo、Bar、Default三个组件,枚举会比if语句更优雅。这是一个可怕的问题,在React中,我们经常会编写条件语句来显示不同的视图,比如这个简单的例子。可以看到,使用‘switch’可以很方便的表达‘menu’和组件的对应关系。有时我们可以使用“&&”来简化三元表达式,比如下面的代码。原创 2022-12-13 09:53:20 · 476 阅读 · 0 评论 -
41个常用Git命令清单(建议收藏)
没有关系,今天,我就为你准备了一份包含 41 个Git命令的备忘单,这些清单可提高你的工作效率,让你拥有更多的业余时间,从而更好的享受属于自己的生活。建议不要使用 --squash 标志,因为它会将所有提交压缩为单个提交,从而导致提交历史混乱。如果不指定,将应用最新的 stash(适用于所有类似的 stash 命令)您还可以添加 --hard 标志来删除所有更改,但请谨慎使用。您还可以使用 --staged 标志来显示对暂存文件的更改。--squash:将指定分支中的所有提交压缩为单个提交。原创 2022-11-21 15:49:55 · 438 阅读 · 0 评论 -
20个值得收藏的实用JavaScript技巧,让开发变得更轻松!
函数式编程 compose 另一个重要的功能,并且要能够进行函数组合,函数的组合只接受一个参数,所以如果你必须接受多个函数的需求并且需要使用 compose 函数组合,就需要使用 compose 的部分 curry 准备复合函数,让它总是只接受一个参数。同时传入一个回调,保存实例来观察所有元素的某种状态,比如每个元素的边界,当前元素对应的DOM节点,当前元素进入查看区域的比例。Currization 是函数式编程中的一项重要技术,该技术将一个接受多个参数的函数转换为一系列接受一个参数的函数。原创 2022-11-17 17:23:17 · 293 阅读 · 0 评论 -
vue和react的区别有哪些,要学哪个好
如果要手写一个简易版本的React,其核心要实现以下功能,createElement(用于创建元素)、createDOM/updateDOM(用于创建和更新DOM)、render/workLoop(用于生成Fiber和协调运算)、commitWork(用于提交)等,如果还有支持Hooks,还得封闭Hooks相关的方法。上手vue3.0并不难,但,要想写出健壮的可维护性更强的vue3.0代码,并不容易,这需要广大的前端开发者有更强大的前端基础功,对MVVM有深刻的理解和沉淀。(2)从组件通信的角度讲。转载 2022-11-15 15:07:11 · 303 阅读 · 0 评论 -
前端vue多人写作开发技巧-路由配置
大家在自己一个人使用vue进行开发时,往往将用到的路由配置都写在脚手架的router/index.js中,但这样路由耦合度高,配置的可读性低,文件的导入往往杂乱无章,尤其是在多人协同开发的场景下,更不利于代码的统一和维护,这时我们需要对路由配置进行去中心化处理。对于稍微复杂点的项目,我们定义的路由文件,会越来越大,而且所有路由都混在一个页面,看着也很混乱,不清晰,这个时候就需要路由模块化。当处理的项目比较简单的情况下,统一在router/index.js处理即可。转载 2022-11-14 10:57:07 · 483 阅读 · 0 评论 -
自学前端达到什么水平才能找到工作,来看这套前端学习路线图--陆神版本思维导图
想要更好的完成页面的开发,更好的与UI部门合作,这些页面制作工具是必须掌握的。本系列课程从概念到具体基础知识点全程干货满满,为前端小白入门找到了很好的学习抓手,可以作为前端开发学习“梦开始的地方”,老师深入浅出的讲解和动画视频解析并用真实的案例巩固知识,学练结合,打好基础,不怕学不会!比如,Facebook的基于React技术的ReactNative原生APP的开发,谷歌的基于Dart技术的Flutter原生APP的开发,以及华为的基于JS技术的HarmonyOS鸿蒙原生APP的开发。原创 2022-11-04 10:31:01 · 649 阅读 · 0 评论 -
14个你必须知道的JavaScript函数
换句话说,当一个函数不是一次接受所有参数时,而是接受第一个参数并返回一个新函数,该函数接受第二个参数并返回一个新函数,该函数接受第三个参数,依此类推,直到所有参数都已履行。我们要缓存函数操作的结果, 稍后调用时,如果参数相同,则不再执行该函数,而是直接返回缓存中的结果。原创 2022-09-20 16:10:45 · 190 阅读 · 0 评论 -
vue的双向数据绑定怎么实现
2.无法监听数组:属性值改为数组,数组也算是一种特殊的对象,下标其实就是对象的属性,理论上是可以通过Object.defineProperty来处理的,那尤大大为什么没有采用这种方式呢,猜测源于数组的使用场景,数组的主要操作场景是遍历,如果每一个元素都挂载set和get方法,会产生巨大性能消耗,而且数组下标变化频繁,操作方法居多,一旦数组长度发生变化,在无法自动检测的状态下,手动更新会是一个相当繁琐的工作。运行的时候,我们不难发现,输入框里面的内容改变的时候,p标签里面的值也会对应的得到变化。原创 2022-09-19 14:58:13 · 512 阅读 · 0 评论 -
教你如何用CSS修改图片颜色
它实现的效果看上去就像使原来的对象离开页面,然后在页面上显示出该对象的投影。是有一点类似box-shadow,但是二者还是有显著差别的,我后面会写一篇专门的文章来比较二者的差别。原理嘛,其实很简单的,用到的就是 CSS3 滤镜filter中的drop-shadow,该滤镜可以给图片非透明区域添加投影。接下来我们稍微更改一下原代码,将原图设置在div外部并隐藏,变色后的投影放置在div中。如果想换成其他颜色,直接更改第三个参数就Ok了~是不是很简单。这段代码,代表投射出一个和该图片一样的形状,原创 2022-09-19 13:58:55 · 8323 阅读 · 0 评论 -
2023版完整版web前端学习路线图(超详细自学路线)
跟着路线图认真坚持学习从前端小白到大神不是梦,0基础看这一篇足矣!前端计算机常识 ➾ html+css基础 ➾ html+css 项目实践JavaScript基础+进阶 ➾ Ajxa ➾ JavaScript应用项目实践 ➾ Node.js ➾ MongoDB项目实践Vue&React开发:Vue2.0+3.0 ➾ Vue项目实践 ➾ 数据可视化项目 ➾ React ➾ React项目实战 ➾ UmiJS项目公众号&小程序开发。原创 2022-09-09 13:19:51 · 56316 阅读 · 7 评论