- 博客(95)
- 资源 (2)
- 收藏
- 关注
原创 vue3中,按位或、按位于 、你不知道的二进制用法?
createRenderer -> path 函数中调用,使用按位或 “&” 来判断是否指定位置是否能够满足条件。createVNode中 赋值, 使用 |= 赋值,“ | ”表示按位或, 为 vnode.shapeFlag。ShapeFlags.TEXT_CHILDREN)值,以便于匹配的时候能够匹配到指定位置为1。添加(ShapeFlags.ARRAY_CHILDREN |
2023-08-14 17:52:54
299
原创 吃透 js 中原型链
作为函数时只需关注prototype 属性即可prototype属性的作用就是让该函数所实例化的对象们都可以找到公用的属性和方法proto作为对象时需要关注__proto__ 、constructor。__proto__属性的作用就是当访问一个对象的属性时,如果该对象内部不存在这个属性,那么就会去它的__proto__属性所指向的那个对象(父对象)里找,一直找,直到__proto__属性的终点null,再往上找就相当于在null上取值,会报错。
2023-03-17 16:21:28
707
1
原创 微信小程序、h5兼容性问题(2)
android 点击右上角圆点,不会关闭小程序,相当于热启动, ios 点击右上角圆点,会直接关闭小程序,相当于冷启动。android 与ios 点击微信小程序右上角圆点(关闭按钮)有什么区别,如果需要把小程序配置再侧边栏,初始化页面: 变动函数 需要在onShow 中调用。优点: 只需要一步就可以直接分享,单对单分享。中获取参数,保存全局,页面直接从全局获取。注意: 小程序消息打开后的路径,注意要以。优点:需要两步才可以完成分享,单对多分享。注意:小程序消息打开后的路径,路径。缺点:分享成功没有回调。
2022-12-14 14:51:06
831
原创 手写vue3.0 -项目结构初始化
tsc init 创建tsconfig.json(注意:如果没有tsc 命令,需要全局安装typescript。typescript 处理子包与子包之间的依赖关系(子包与子包之间相互引用)修改package.json, 方便打包后使用一些独立的配置。子包通过访问依赖包的方式引用另一个子包中的函数。解读:script/dev.js 运行dev.js。介绍:vue3拆分为多个包,每个包都可以独立部署。-f global 使用global 格式打包。minimist 处理打包命令(参数)esbuild 打包。
2022-11-28 11:06:17
679
原创 微信小程序、h5兼容性问题(1)
不建议两者同时使用,实测ipone12 不兼容, ipone 12以上正常显示。可以使用背景图片代替。解决方案:使用font-weight:bold 代替 数字。不要再slot 中使用第三方插件。建议使用dev 整体布局。
2022-08-31 17:36:04
3165
原创 vue3.0 Composition Api 设计动机
用组件的选项(data、computed、methods、watch)组织逻辑在大多数情况下都有效。然而,当我们的组件变得更大时,逻辑关注点的列表也会增长。这可能会导致组件难以阅读和理解,尤其是对于那些一开始就没有编写这些组件的人来说。看着代码行数都差不多,这只是最简单的一个示例,如果给获取鼠标位置添加各种业务。......
2022-07-16 21:11:30
234
原创 vue部署,用户无感知更新问题调研
方案1:文件名带有hash值实现无感发布: 系统更新时,只需要将打包之后的文件除index.html以外的文件(js/css/img),全部上传到服务器网站目录,未修改文件(即重名文件)直接跳过, 有修改的文件由于文件的hash值不同会被上传, 上传完毕我们再将index.html覆盖掉旧版就行。这段时间用户已请求旧版本index.html的无影响(不会出现文件404,因为新旧版本js/css同时存在),而新访问用户则请求的是新版index.html,访问旧页面用户刷新也会请求新版文件,并且无缓存影响,即
2022-05-27 12:01:29
1297
原创 js 位运算你了解吗?
名词介绍有符号: 无符号表示全部的整数,包含负数和正数无符号: 有符号代表全部是正整数,不包含负数的整数源码: 计算机存储数字都是以二进制进行存储,并且第一位 数字为 0 表示正数, 1表示负数,所以二进制称为源码, 比如 2 的二进制 0000 0010反码: 对所有二进制进行取反操作, 1 变成 0, 0变成 1, 当前数字为负数时,第一位数字不变(代表正负数), 比如 2 的反码 0111 1101, -2 的反码 1111 1101补码: 所有负数都是以补码进行存储,补码表现形式为 先求出
2022-04-07 18:17:35
406
原创 彻底了解http 缓存
强制缓存Expires: new Date().toUTCString(); 即将废弃!!!缓存机制:判断本地时间是否大于缓存时间缺点:依赖本地时间,如果本地时间有更改,game over。。。Cache-Control: max-age=10;缓存机制:max-age 定义过期时间,时间一到就过期,单位秒。 缺点:无法判断请求内容是否过期。协商缓存Cache-Control:no-cache; last-modified: 文件更新时间缓存机制:通知浏览器使用协商缓存
2022-03-21 15:48:56
1060
原创 git不要只会pull、push、clone 了
缓存本地变更git stash切换分支git checkout dev_B提取本地变更git stash apply
2022-02-16 11:43:18
234
原创 flutter Error: Method ‘pop‘ cannot be called on ‘NavigatorState?‘
错误:flutter 安装fluro 后运行失败,出现次错误,请查看你当前安装的dart版本解决办法:安装相对应的依赖,重新运行
2021-12-16 11:04:48
1576
1
原创 Flutter - 多主题
主题风格可以通过theme 来定义, 从而实现整个App 风格的统一,一旦设置了主题,那么应用程序中某些Widget 就会直接使用主题样式。全局主题通过声明ThemeData 来定义,Brightness(Brightness.light | Brightness.dark)primaryColor | accentColorbuttonTheme | cardTheme | iconTheme | textTheme局部主题Theme.of(context).代码示例.
2021-12-16 06:00:00
324
原创 Flutter-动画
实现原理动画就是动起来得画面视觉暂留: 画面经视神经传入大脑后,不会立即消失(会保留一段时间)帧: 单个得画面,在学术上叫帧。每秒中展示得帧数简称为fps(Frame per Second)动画分类补间动画在补间动画中我们定义开始点和结束点、 时间线以及定义转换时间和速度曲线,然后由系统计算, 从开始运动到结束点、 从而形成动画效果 例如:从透明度度0 到 1, 从颜色值 0 到 255拟物动画模拟动画是对真是世界得行为进行建模,是动画效果类似与现时中得物理效
2021-12-15 11:45:32
2001
原创 flutter-表单
Switch - 开关安卓安卓属性类型说明valuebool开关得值,一般与状态字段绑定onChangedFunction开关状态变更时调用activeColorColors开关开启时得圆圈颜色activeTrackColorColors开关开启时得轨道颜色inactiveThumbColorColors开关关闭时得圆圈颜色inactiveTrackColorColors开关关闭时得轨道颜色iosios属性类型
2021-12-14 16:02:54
2704
原创 flutter- 底部导航
示例:import 'package:flutter/material.dart';class Home extends StatefulWidget { Home({Key key}) : super(key: key); @override _HomeState createState() => _HomeState();}class _HomeState extends State<Home> { final List<BottomNavig
2021-12-13 18:32:16
210
原创 flutter-路由
路由简介:Navigator 管理路由的组件, Navigator 可以通过路由入栈和出栈来实现页面之间的跳转initialToute: 初始路由,默认页面onGenerateRoute:动态路由(根据规则匹配相应路由)onUnknownRoute:未知路由,404页面routes:路由集合匿名路由跳转Navigator.push( context, MaterialPageRoute( builder: (context) => 路由组件Widget ))路
2021-12-13 17:28:36
642
原创 Flutter - 跨组件传参
基本用法1. 创建InheritedWidget 数组贡献组件class ShareDataWidget extends InheritedWidget { final Widget child; final String title; ShareDataWidget({Key key, this.child, @required this.title}) : super(key: key, child: child); static ShareDataWidget of(Buil
2021-12-13 14:23:17
1252
原创 Flutter - 按钮
普通按钮TextButton - 文本按钮OutlineButton - 空心按钮ElevatedButton - 凸起按钮按钮属性属性类型说明onPressedFunction点击事件onLongPressFunction长按事件childWidget子组件styleButtonStyle自定义样式ButtonStyle 属性属性类型说明textStyleMaterialStateProperty字体样
2021-12-09 15:35:48
2037
3
原创 Flutter常用布局方式
文章目录flutter 布局介绍一、Container 布局1.属性2. 示例二、线性布局1.说明2. 属性3. 示例三、弹性布局 Flex1.属性2. Expanded 的使用3. 示例四、流式布局1.说明2. 属性3. 示例五、层叠布局1.说明2. 属性StackPositioned3. 示例flutter 布局介绍一、Container 布局1.属性属性类型说明childWidget声明子组件alignmentAlignment控制child的对齐方式,
2021-12-08 18:06:37
9613
1
原创 如何优雅的在项目中使用js 新特性
Object.entries 迭代对象const person = { name: '111', age: 20}// Object.keys 迭代一个对象Object.keys(person).forEach((key) => { console.log(`${key} is ${person[key]}`)})// name is 111// age is 20// Object.entries 迭代一个对象Object.entries(person)
2021-11-17 11:20:32
632
原创 算法-排序
冒泡排序动图演示:代码:冒泡选择排序动图演示:提示:这里可以添加学习目标插入排序动图演示:提示:这里可以添加学习目标希尔排序动图演示:提示:这里可以添加学习目标归并排序动图演示:提示:这里可以添加学习目标快速排序动图演示:提示:这里可以添加学习目标快速排序动图演示:提示:这里可以添加学习目标计数排序动图演示:提示:这里可以添加学习目标基数排序动图演示:提示:这里可以添加学习目标桶排序动图演示:提示:这里可以添
2021-11-10 16:58:10
534
原创 js搜索算法
算法-搜索代码对比工具:可以使用https://jsbench.me 对比新旧代码那种方式更好目录算法-搜索一、线性/顺序 搜索二、二分搜索# 测试性能结果一、线性/顺序 搜索介绍:用每一个元素与需要查找的元素进行比较代码如下(示例):const arr = [1,2,3,4,5,6,7,8,9,10]const lineSearch = (array, searchItem) => { for (var i=0; i<array.length; i++){
2021-11-09 14:56:38
1016
原创 vsCode 快捷键
快速查找文件windowctrl + pmaccmd + p快速删除某一行代码windowctrl + xmaccmd + x查找页面中指定的词汇windowctrl + Dctrl + Umaccmd + Dcmd + U菜单栏显示隐藏windowctrl + Bmaccmd + B快速跳转到指定行ctrl + G...
2021-11-05 10:24:21
192
原创 重新认识JSON.stringify
JSON.stringify 第二个参数const person = { name: "JSON", age: undefined }// 问题1: 当值为undefined 时, 存在属性丢失console.log(JSON.stringify(person)// '{"name":"JSON"}'数组// 格式化指定的属性console.log(JSON.stringify(person , [name])// '{"name":"JSON"}'函数// 格式化的每个
2021-10-11 16:45:06
103
原创 JavaScript for-in和for-of的区别
在平时工作中大家常用的肯定是forEach、map等来循环数组,通过Object.keys().forEach 来循环对象。缺点: 但是forEach、map是无法中断循环的,除非使用try...catch 来抛出异常,强制使forEach跳出循环这里介绍两个万能的循环方法for-of 、for-in不同点:for in在这里插入代码片 遍历的是数组的索引(即键名),而for of遍历的是数组元素值for in总是得到对象的key或数组、字符串的下标for of总是得到对象的value或数
2021-10-09 11:38:31
130
原创 js伪数组
伪数组和数组的区别对象没有数组Array.prototype的属性值,类型是Object,而数组类型是Array;数组有length属性,而对象是键值对;使用对象可以创建伪数组,伪数组可以正常使用数组的大部分方法// 伪数组const a = { length: 2, "a1": 12, "a2": 13}console.log(a.length) // 2伪数组转数组// slice内部实现Array.prototype.slice = function(sta
2021-10-08 10:41:54
194
原创 vue + ts + element下拉加载更多指令
import { DirectiveOptions } from "vue";/** * 对 element-ui 的无限滚动在 el-table 上使用的封装 */import elInfiniteScroll from "element-ui/lib/infinite-scroll";const elScope = "ElInfiniteScroll"; // scope nameconst msgTitle = `[el-table-infinite-scroll]: `; // me
2021-09-22 12:00:53
312
原创 vue2.0 + ts 遇到this 指向的问题
运行环境“vue”: “^2.6.11”,“typescript”: “~3.8.3”,问题重现html <el-tree :data="treeOptions.data" node-key="id" @check="treeOptions.checkChange" />js问题1:export default class GoodsClassify extends Vue { private treeOptions = { data:
2021-09-03 17:38:59
1410
原创 flv 视频播放加载延迟,双击放大处理
<!DOCTYPE html><html><head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title>flv.js demo</title> <style> .mainContainer { display: block; width: 1024px; m
2021-06-02 10:58:56
866
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人