本文分别使用 SFC(模板方式)和 tsx 方式对 Element Plus el-menu 组件进行二次封装,实现配置化的菜单,有了配置化的菜单,后续便可以根据路由动态渲染菜单。 1 数据结构定义1.1 菜单项数据结构使用 element-plus el-menu 组件实现菜单,主要包括三个组件: el-menu:整个菜单;el-sub-menu:含有子菜单的菜单项;el-sub-menu:没有子菜单的菜单项(最末级); 结合菜单的属性和展示效果,可以得到每个菜单项包括:菜单名称、蓝狮注册菜单图标、菜单唯一标识、子菜单列表四个属性。于是可得到菜单项结构定义如下: ...
蓝狮官网在 JavaScript 中,什么时候使用 Map 或胜过 Object
在 JavaScript 中,对象是很方便的。它们允许我们轻松地将多个数据块组合在一起。 在ES6之后,又出了一个新的语言补充– Map。在很多方面,它看起来像是一个功能更强的对象,但接口却有些笨拙。 然而,大多数开发者在需要 hash map 的时候还是会使用对象,蓝狮注册登陆只有当他们意识到键值不能只是字符串的时候才会转而使用 Map。因此,Map 在当今的 JavaScript 社区中仍然没有得到充分的使用。 在本文本中,我会列举一些应该更多考虑使用 Map 的一些原因。 为什么对象不符合 Hash Map 的使用情况在 Hash Map 中 ...
蓝狮官网CommonJS模块 和 ECMAScript模块
-cjs只有在node.js环境使用。-esm在node.js和浏览器环境都可以使用 1、commonjs在node.js中,每个文件都被视为一个单独的模块。蓝狮注册登陆模块的局部变量是私有的,只有exports出去的变量,才能被外界访问。 默认情况下,node.js会将以下情形视为 cjs模块: 扩展名为.cjs的文件;扩展名为.js的文件,且离自己最近的package.json文件包含一个顶级字段“type”,其值为“commonjs”;扩展名为.js的文件,且离自己最近的package.json文件不包含一个顶级字段“type”(建议明确指定 type值,而不是不定义);扩展名不为.mjs, .cjs, ...
蓝狮官网js禁止复制页面文字
做项目的时候有客户提出要求,蓝狮官网不能用用户浏览他发表的文章时复制他的文章,一种比较简单的方法,禁止用户选中页面的文字和禁止用户右键菜单: document.oncontextmenu = new Function(“event.returnValue=false”);document.onselectstart = new Function(“event.returnValue=false”);如果只是禁止部分区域的话,蓝狮注册登陆直接在标签上加上onselectstart=“return false” 此区域禁止复制 或者 此区域禁止复制 在火狐下这种js写法是无效的,在火狐下有个屏蔽选择样式的样式属性 -mo ...
蓝狮官网这些强大的 JS 操作符,你都知道吗?
一、一元操作符操作符可以根据他们期待的操作符个数来分类,蓝狮注册登陆多数的JavaScript操作符都是二元操作符,二元操作符可以将两个表达式合成一个更复杂的表达式。JavaScript也支持一元操作符,这些操作符可以将一个表达式转化为另一个更复杂的表达式。同时,JavaScript中也有一个三元操作符,就是条件操作符(?:),它用于将三个表达式组成一个表达式。下面就先来看看一元操作符。 一元操作符具有以下特点: 最简单的操作符,用来操作一个表达式;具有高优先级和右结合性;在必要时将操作数自动转化为数值。 递增 ...
蓝狮官网全解析异步编程的几种方法
前端技术飞速发展,曾经的最佳实践,在未来可能被新的方法代替,而我们只有保持不断学习,才能不那么迷茫,异步编程一直是JavaScript中的比较难学的部分,也是面试中的高频考题。 在JavaScript中,异步编程的方法一直在改变,目前为止,共有6种异步编程方法,学习并掌握这些方法并不容易,本文通过一个形象的例子,讲解了异步编程的发展历史和 6 种异步编程方法,实践出真知。 前言在很久以前(大概2015年以前),说起异步还只有 callback,ES2015带来了 Promise 和 Generator,ES2017带来了更先进的async/await,今年发布 ...
蓝狮官网删掉编程中的 Switch 语句
多重方法是一种有趣的方式,可以帮你摆脱令人讨厌的 switch。而且,这也有助于提升代码的可读性。所以,在决定继续坚持使用 switch 之前,一定要先试一试。 很多开发者都讨厌 switch 语句,包括我。并不是因为这个语句没用,也不是因为它太难了。 理解 switch 语句的工作原理非常简单,蓝狮注册登陆问题是当你真的遇到它时,就必须停下手头的一切工作,集中精力阅读它,以确保不会遗漏任何东西,比如,缺少 break 语句可能会导致一些意想不到的行为,或者一个 case 中大约有 20 行代码。 关键是,原谅我使用一个花哨的 ...
蓝狮官网七种交换变量值的方法,看看你知道几种
现在,我们一起来看看这些技巧。 1.判断空和未定义我们很快就会在 JavaScript 中学到的一件事是,并非一切都像它看起来的那样,蓝狮注册登陆并且在像这样的动态语言中,变量可能会以多种方式导致你出现问题。可以进行的一个非常常见的测试是检查变量是否为空或未定义,甚至“空”,如下例所示: let username;if (name !== null || name !== undefined || name !== ”) {userName = name;} else {userName = “”;进行相同评估的更简单方法是: let userName = name || “”;如果你不相信,请测 ...
蓝狮官网Javascript的事件循环机制
单线程的JavascriptJavaScript是一种单线程语言,它主要用来与用户互动,以及操作dom。蓝狮注册登陆多线程需要共享资源、且有可能修改彼此的运行结果,且存在上下文切换。 在 JS 运行的时候可能会阻止 UI 渲染,这说明两个线程是互斥的。这是因为 JS 可以修改 DOM,如果在 JS 执行的时候 UI 线程还在工作,就可能导致不能安全的渲染 UI。JS 是单线程运行的,可以达到节省内存,节约上下文切换时间。为了利用多核CPU的计算能力,html5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得 ...
蓝狮官网38 个非常有用的 JavaScript 单行代码汇总
今天的这些技巧的汇总,希望可以帮助到你。 1.判断日期是否正确此方法用于检查给定日期是否有效。 const isDateValid = (…val) => !Number.isNaN(new Date(…val).valueOf());isDateValid(“December 27, 2022 13:14:00”); // true 计算两个日期之间的间隔此方法用于计算两个日期之间的间隔。 const dayDif = (date1, date2) => Math.ceil(Math.abs(date1.getTime() – date2.getTime()) / 86400000)dayDif(new Date(“2022-08-27”), new Date(“2022-12-25”)) // 120距 ...