前端开发

浅析JS中的闭包

闭包是什么且看官方的解释:闭包(closure)是一个函数以及其捆绑的周边环境状态(lexical environment,词法环境)的引用的组合。——《MDN》初次看到这个解释确实晦涩难懂,毕竟它还涉及到了作用域链和执行上下文环境。其捆绑的周边环境状态 指的就是执行上下文,可以简单理解为代码执行的环境,存放了对应的变量。执行上下文的特性之一就是:当一个函数被调用结束之后,其执行上下文环境就...

vite + typescript判断开发和生产环境的方式

0 条评论 Vue 前端开发 vue vite typescript 月琳
前言以前我用的框架是vue + webpack,使用process.env.NODE_ENV来辨别开发环境和生产环境,但是最近开始用vue3 + vite + typescript的组合,发现这个方法不管用了,看了下错误提示,原来是因为typescript需要额外加库和规则。由此顺便整理一下vite + typescript判断环境的写法。

Flutter适配暗黑模式的实践

随着SDK版本的迭代,Flutter官方已经很好地支持了暗黑模式了,想适配暗黑模式并非是一件难事。本文从最简单基础的写法开始,逐步引入provider、shared_preferences完善暗黑/夜间模式的适配,并提供Demo演示和源代码。

Flutter BouncingScrollPhysics回弹无效、回弹不会恢复原位

0 条评论 Flutter 前端开发 Flutter 月琳
ListView内容不足以撑满全屏的情况下:ListView.builder( physics: AlwaysScrollableScrollPhysics(parent: BouncingScrollPhysics()), // ListView内容不足也能搞出回弹效果 ... );如果是普通的Scaffold套SingleChildScrollView,而内容却不是ListVie...

Flutter IOS权限配置无效,info.plist不生效的问题

前言我的Flutter项目有保存图片功能,需要用到相册的访问权限,在IOS那边搞了半个下午的权限配置还是获取不到权限,记录下解决方式。本文所用权限依赖插件:permission_handler,版本8.1.6我仔细排查,网上各种搜索,info.plist配置确定是没有问题的,就很谜。Podfile也参照一些文章配置了也一样不生效(后来才发现有坑)??之后卸载了,重新Build也还是一样。并且...

关于OAuth2.1 PKCE利用crypto的sha256哈希结果转换base64url计算结果不一致的问题(Flutter)

前言最近在写第三方flutter app并抓包分析某原生app登录逻辑的时候,遇到了使用OAuth2.1 PKCE授权码模式的登录方式,该模式下需要将code_verifier先进行sha256哈希后再进行base64(URL-Save) 编码成最终的code_challenge。OAuth2.1 PKCE授权码模式详解:https://shanhy.blog.csdn.net/articl...

Flutter调用JSON序列化出现type 'String' is not a subtype of type 'MapString, dynamic'

问题情况本来按照书上的思路都封装好了Dio,半自动生成了Json Model,结果在实际应用上出现了以下异常:Unhandled Exception: type 'String' is not a subtype of type 'Map<String, dynamic>'

Flutter生成JSON序列化模板报错

问题详情:在执行flutter packages pub run build_runner build自动生成JSON序列化模板的时候出现了以下报错:Generator cannot target libraries that have not been migrated to null-safety. package:flutter_test2/model/recommender.dart...

解决npm install代理报错

前言最近切换到Windows来写写Vue,拿起以前的项目敲npm install,结果报了代理错误,关掉系统代理后依旧。Debugger attached. npm ERR! code ENOTFOUND npm ERR! errno ENOTFOUND npm ERR! network request to https://registry.npmjs.org/@types/minima...

ES6中的Promise

Promise在ES6中提供了 Promise 对象。一、概念在MDN里的解释是(我的翻译可能不太好):Promise对象表示在异步操作下的最终完成(或失败)及其结果值。The Promise object represents the eventual completion (or failure) of an asynchronous operation, and its resulti...