JavaScript 的 switch 有四样写法,你知道么?不管你知道不知道,反正我是不知道。 我所知道的 JavaScript 的 switch 语句只有一种写法。但要说到对分支的处理,写法可就多了去了。if 分支写法可以算一种,switch 分支写法可以算第二种,蓝狮注册登陆第三种是使用策略模式,如果要把条件运算符也算上的话,嗯,刚好四种。 不过本文的主角是 switch。大家都了解 switch 的写法一般来说是 switch 变量或表达式,case 常量。嗯,比如说,一个百分制成绩,90 及 90 分以上算优秀,80 及以上 90 以下算良好,60 及以上 80 以下 ...
蓝狮官网使用闭包实现点击按钮切换 toggle
前言我以往在实现点击按钮切换dom元素样式的时候,蓝狮注册登陆使用的是在全局范围内定义一个flag变量,然后用true和false来对应不同的状态。 const btn = document.querySelector(‘#btn’); //获取按钮元素let flag = false; //flag是全局变量 //事件监听绑定点击事件btn.addEventListener(‘click’,function(){if(flag){//状态1}else{//状态2}flag = !flag; //切换状态(通过修改flag的值:true或false)}); //…如果代码量很多的话,我们可能在其他地方不小心使用着同样叫做flag的变量 flag = ...
蓝狮注册登陆如何把前端项目写成一座屎山?
前言最近几年前端发展的非常快,SPA的繁荣让前端的工程化也越来越重。在很多场景下,前端的复杂度和难度也早已经超过了后端。但快速的发展下,前端也逐渐暴露出了许多问题。众所周知,前端从业人员很少谈程序的设计原则或设计思想。设计模式也顶多是在八股面试时千篇一律的问答“观察者模式”和“发布订阅者模式”。“内聚”和“解耦”这样的词语也很少从前端嘴里蹦出。这就难免导致前端代码写成一座大屎山。而这还是在基于类MVVM框架开发模式的前提下,前端代码天然具有了组件级别的抽象,如果是刀耕火种的MVC时代,更是难以想象。 ...
蓝狮注册登陆盘点 10 个 GitHub 上的前端高仿项目
大家好,我是CUGGZ。今天来分享 Github 上的 10 个高仿前端项目。 概览: 高仿QQ音乐(vue)高仿网易云音乐(Vue)高仿网易云音乐(react)高仿B站(React)高仿掘金(Vue)高仿饿了么(Vue)高仿微信(Vue )高仿 Instagram(React)高仿 Stackoverflow(React)高仿 Spotify(React) 高仿 QQ音乐(Vue)一个使用 Vue3+TS 开发的音乐播放器,界面模仿 QQ 音乐 Mac 客户端,蓝狮注册开户支持黑夜模式。 Github:https://github.com/SmallRuralDog/vue3-music 高仿网易云音乐(Vue)一个基于 Vue2 和 Vue-CLI3 的 ...
蓝狮注册登陆Iframe在Vue中的状态保持技术
Iframe是一个历史悠久的html元素,根据MDN WEB DOCS官方介绍,Iframe定义为HTML内联框架元素,表示嵌套的Browsing Context,它能够将另一个HTML页面嵌入到当前页面中。Iframe可以廉价实现跨应用级的页面共享,并且具有使用简单、高兼容性、内容隔离等优点,因此以Iframe为核心形成了前端平台架构领域第1代技术。 众所周知,当Iframe在dom中初始渲染时,会自动加载其指向的资源链接Url,并重置内部的状态。在一个典型的平台应用中,一个父应用主页面要挂载多个窗口(每一个窗口对应一个Iframe),那么如何在切换窗口时,实现每 ...
蓝狮注册登陆Chrome 102:新增两个 HTML 属性、两个 JS API !
Chrome 在上月发布了 102 版本,我们一起来看看都有哪些新东西把! inert 属性inert 属性是一个全局的 html 属性,蓝狮注册开户它可以告诉浏览器忽略元素的用户输入事件,包括焦点事件和来自辅助技术的其他事件。主要是下面两种用例: 元素是 dom 树的一部分,但在屏幕外或隐藏;元素是 DOM 树的一部分,但应该是非交互的。这个属性的在切图的时候还是挺有用的。例如,我们想开发一个模态框,你希望在模态框可见时将焦点聚焦在模态框内。或者,对于用户并不总是可见的抽屉,添加 inert 可确保当抽屉不在屏幕上时,键盘用户 ...
蓝狮注册登陆Vue 源码中的工具函数
前言在 vue 源码中,封装了很多工具函数,学习这些函数,一方面学习大佬们的实现方式,另一方面是温习基础知识,希望大家在日常工作中,简单的函数也可以自己封装,蓝狮注册开户提高编码能力。 本次涉及的工具函数 1-16 在 Vue3 的源码中,路径是 core/packages/shared/src/index.ts。 17-22 在 Vue2 的源码中,路径是 vue/src/shared/util.ts。 EMPTY_OBJ 空对象const EMPTY_OBJ = DEV? Object.freeze({}): {}注意:Object.freeze 只能浅冻结,如果属性是对象,对属性的属性的修改就无法冻结了 const obj = {name: ...
蓝狮注册登陆我对 React 实现原理的理解
react 是前端开发每天都用的前端框架,自然要深入掌握它的原理。我用 React 也挺久了,这篇文章就来总结一下我对 react 原理的理解。 react 和 vue 都是基于 vdom 的前端框架,我们先聊下 vdom: vdom为什么 react 和 vue 都要基于 vdom 呢?直接操作真实 dom 不行么? 考虑下这样的场景: 渲染就是用 dom api 对真实 dom 做增删改,蓝狮注册开户如果已经渲染了一个 dom,后来要更新,那就要遍历它所有的属性,重新设置,比如 id、clasName、onclick 等。 而 dom 的属性是很多的: 有很多属性根本用不到,但在 ...
蓝狮注册登陆一文掌握 vue3.2 setup 语法糖
前言提示: vue3.2 版本开始才能使用语法糖!在 Vue3.0 中变量必须 return 出来,蓝狮注册开户 template 中才能使用;而在 Vue3.2 中只需要在 script 标签上加上 setup 属性,无需 return , template 便可直接使用,非常的香啊! 一、如何使用setup语法糖只需在 script 标签上写上 setup代码如下(示例): 提示:以下是本篇文章正文内容,下面案例可供参考 二、data数据的使用由于 setup 不需写 return ,所以直接声明数据即可代码如下(示例): 三、method方法的使用代码如下(示例): 四、watchEffect的使 ...
蓝狮注册登陆工作中使用 Git 解决问题的场景
简单来说,就着七点: 使用 git rebase 让提交记录更加清晰可读使用 git reflog + git reset 跳到任意 commit使用 git cherry-pick 获取指定的 commit使用 git commit –amend 更改提交内容使用 git revert 回滚某次的提交使用 git stash 来暂存文件配置 git alias 提升工作效率使用 git rebase 让提交记录更加清晰可读rebase 基本用法rebase 翻译为变基,它的作用和 merge 相似,用于把一个分支的修改合并到当前分支 如下图所示,经过 rebase 后提交历史的变化情况 不明白单分支的好处,可以在看看知乎的这个问题 ...