总览当我们对一个不是数组的值调用 map() 方法时,就会产生 “TypeError: map is not a function” 错误。为了解决该错误,请将你调用 map() 方法的值记录在 console.log 上,蓝狮注册登陆并确保只对有效的数组调用 map 。 这里有个示例来展示错误是如何发生的。 const App = () => {const obj = {}; // :no_entry:️ Uncaught TypeError: map is not a function return ( {obj.map(element => { return {element} ; })});}; export default App;我们在一个对象上调用 Array.map( ...
蓝狮官网sass @extend(继承)指令详解
所有警告框的基本样式(风格、字体大小、内边距、边框等…) ,蓝狮注册登陆因为我们通常会定义一个通用alert样式,类似于这样的 .alert{padding: 15px;margin-bottom: 20px;border: 1px solid transparent;border-radius: 4px;font-size: 12px;}然后定义不同警告框单独风格: .alert-info{color: #31708f;background-color: #d9edf7;border-color: #bce8f1;} .alert-success{color: #3c763d;background-color: #dff0d8;border-color: #d6e9c6;} .alert-warning{color: #8a6d3b;background-color: #fcf8e3;border-col ...
蓝狮官网type=module你了解,但 type=importmap你知道吗
当ES模块第一次在ECMAScript 2015中被引入,作为在JavaScript中标准化模块系统的一种方式时,它是通过在import语句中指定相对或绝对路径来实现的。 import dayjs from “https://cdn.skypack.dev/dayjs@1.10.7”; // ES modules console.log(dayjs(“2019-01-25”).format(“YYYY-MM-DDTHH:mm:ssZ[Z]”));这与模块在其他通用模块系统中的工作方式略有不同,例如CommonJS,以及在使用webpack这样的模块捆绑器时,使用的是更简单的语法。 const dayjs = require(‘dayjs’) // C ...
蓝狮官网6 个意想不到的 JavaScript 问题
作为前端开发工程师,JavaScript 是我们的主要开发语言,它本身语法比较简单,并且生态系统也非常完善,在社区的影响力越来越大。 在我们使用过程中,经常会遇到各种奇怪的问题,蓝狮注册登陆让我们经常摸不着头脑。 本文灵感来自wtfjs,整理了 6 个比较常见并且很有意思的问题。 奇怪的 try..catch:question:问题 下面代码执行后将返回什么? 2 还是 3 ? (() => {try {return 2;} finally {return 3;}})();:bulb:解答 答案是 3 ,这是为什么呢?这是因为在 try…catch…finally 语句中,无论是否抛出异常 final ...
蓝狮官网前端性能优化之控制请求并发数
在我们平时开发中,经常会遇到页面数据初始化时,频繁调同一个接口的情况。比如echarts项目中,一个页面可能会有几十张图表,如果一个接口返回所有图表数据的话,会造成用户过长的等待时间,再者过多图表同时渲染,也会给页面增加压力,造成卡顿的现象。 我们通常会让每个图表单独调一个接口,入参不同,这样更有利于页面快速渲染图表,单个图表请求到数据,立即渲染,不需要等待其他图表。可理想很丰满,现实很骨感,当服务器配置过低,或者后端代码性能较弱,会难以处理这些并发请求,接口调用越多,蓝狮注册登陆等待处理的 ...
蓝狮官网vue3解构赋值失去响应式引发的思考!
前言vue3发布以来经历两年风头正盛,现在大有和react 平分天下的势头,我们知道他是基于proxy 实现响应式的能力, 解决了vue2所遗留下来的一些问题,蓝狮注册登陆同时也正由于proxy的特性,也提高了运行时的性能 凡事有利有弊, proxy虽然无敌,但是他也有本身的局限,从而产生一些我认为的弊端(其实就是不符合js语言的自然书写方式,有的人觉得就是个特殊写法,他不属于弊端) 1、 原始值的响应式系统的实现 导致必须将他包装为一个对象, 通过 .value 的方式访问2、 ES6 解构,不能随意使用。会破坏他的响应式特性好奇 ...
蓝狮注册登陆80 行代码实现简易 RxJS
RxJS 是一个响应式的库,它接收从事件源发出的一个个事件,经过处理管道的层层处理之后,传入最终的接收者,这个处理管道是由操作符组成的,开发者只需要选择和组合操作符就能完成各种异步逻辑,极大简化了异步编程。除此以外,RxJS 的设计还遵循了函数式、流的理念。 直接讲概念比较难理解,不如我们实现一个简易的 RxJS 再来看这些。 RxJS 的使用RxJS 会对事件源做一层封装,叫做 Observable,蓝狮注册开户由它发出一个个事件。 比如这样: const source = new Observable((observer) => {let i = 0;setInterva ...
蓝狮注册登陆前端工程化配置指南
本文讲解如何构建一个工程化的前端库,并结合 Github Actions,自动发布到 Github 和 npm 的整个详细流程。示例我们经常看到像 vue、react 这些流行的开源项目有很多配置文件,他们是干什么用的?他们的 Commit、Release 记录都那么规范,是否基于某种约定?废话少说,先上图! 上图标红就是相关的工程化配置,有 Linter、Tests,Github Actions 等,蓝狮注册开户覆盖开发、测试、发布的整个流程。 相关配置清单 EslintPrettierCommitlintHuskyJestGitHub ActionsSemantic Release下面我们从创建一个 TypeScript 项目开 ...
蓝狮注册登陆简单带大家实践一下pnpm,也就几分钟的事情~
Monorepo说pnpm之前先说说Monorepo,它是一个思想,我举个例子,蓝狮注册开户我现在需要做一个大项目——电商平台,那么我需要做以下几个子项目: 电商Web端电商H5端电商的后台管理系统其实这三个子项目,都会用到网络请求、工具函数、公用组件,也就是: axios -> requestlodash -> utilsantd -> components。。。。。按照以前的规范,一个项目肯定要安装一次axios,然后封装一遍request,但是其实这三个小项目都可以共用一个request,这样做的好处是: 1、多个项目统一规范,因为用到是同一个封装2、不需要每 ...
蓝狮注册登陆跟我一起了解2022 年值得推荐的 Vue 库
大家好,我是 CUGGZ。 今天来推荐几个热门又实用的 vue.js 库! 状态管理(1)PiniaPinia 是最新一代的 Vue 轻量级状态管理库。它适用于 Vue 2.x 和 Vue 3.x。蓝狮注册开户它是 Vue 官方成员在2019年11月重新设计的一个状态存储库,它允许你跨组件/页面共享状态,并且是响应式的,类似于 Vuex。 Github:https://github.com/vuejs/pinia (2)VuexVuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 Github:ht ...