自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(463)
  • 收藏
  • 关注

原创 切分支解决切不走因为未合并的路径如何解决

改代码的时候改做分支了,本来是在另一个分支上面改代码,结果改到另一个放置上面,然后想着使用git stash进行保存,然后切到另外一个分支再pop,结果不行。报这个错误,导致切不过去,因为我这边pop代码的时候,和本地有了冲突,我这边解决了冲突,所以会有这个双方修改的问题。这两个文件就是出现冲突的文件。

2023-09-06 20:06:37 1001

原创 git在linux情况下设置git 命令高亮

只需要执行下面这个命令,这样就可以在查看git status明亮的时候高亮显示。

2023-09-03 15:41:23 959

原创 微信小程序编辑器代码格式缩进设置

然后设置tab为空格,并且设置占几个空格,这里是4个空格。这样就好了,文件保存就会自动设置好缩进格式了。

2023-09-03 15:11:09 733

原创 vuejs源码分析之全局API(vm.$off)

vue在初始化的时候会给vue对象本身挂载一些全局的api。今天我们一个一个来看这些api。

2023-08-06 16:12:03 430

原创 vuejs源码阅读之代码生成器

代码生成器是模版编译的最后以后,它的作用是将AST转换成渲染函数中的内容,这个内容可以称为代码字符串。代码字符串可以被包装在函数中执行,这个函数就是我们通常说的渲染函数。渲染函数被执行之后,可以生成一份VNode,而虚拟DOM可以通过这个VNode来渲染视图。

2023-07-30 21:02:58 932

原创 vuejs源码阅读之优化器

前面讲过vuejs中解析器是把html模版解析成AST,而优化器的作用是在AST中找到静态子树并打上标记。静态子树是指的那些在AST中永远不会发生变化的节点。例如,一个纯文本节点就是静态子树,而带变量的文本节点就不是静态子树,因为他会随着变量的变化而变化。标记静态子树有两点好处。

2023-07-29 21:46:06 474

原创 vuejs源码之解析器

解析就是将模版解析成AST。比如下面这个代码,然后转成AST之后是这个样子。它是用javascript对象来描述一个接待您,一个对象表示一个节点。对象中的属性用来保存节点所需的各种数据。比如parent属性保存了父节点的描述对象,children属性是一个数组,里面保存了一些子节点的描述对象,type属性表示一个节点的类型。很多独立的节点通过parent属性和children属性连在一起。就变成了一个树。这个就是AST。

2023-07-23 15:32:33 333

原创 vuejs源码之模版编译原理

之前我们说过虚拟dom,也就是虚拟dom拿到vnode后所做的事情,而模版编译是如何让虚拟dom拿到vnode。模版编译的目标就是生成渲染函数,而渲染函数的作用是每次执行它,它就会使用当前最新的状态生成一份新的vnode,然后用这个vnode进行渲染。

2023-07-22 22:40:03 212

原创 git将原来一个分支默认的源从一个分支改到另外一个分支命令

之前开发总是云端创建一个分支,然后拉取到本地,本地也会有个分支,但是这样有个问题,如果master有代码更新,我们要更新的时候需要每次在云端把代码从master合并到目标分支,然后本地再拉取下来,非常的麻烦。后来觉得还不如,我本地每次都新建一个分支,用来开发当前的功能。然后我push代码到master,cr,但是不和入。

2023-07-20 20:39:25 199

原创 navigator.mediaDevices.getUserMedia js录音注意事项

navigator.mediaDevices.getUserMedia 使用这个api来实现js录音,这个必须是https环境才行。

2023-07-18 19:29:40 166

原创 vuejs源码之虚拟dom中的vnode

在vuejs中,有一个Vnode类使用它可以实例不同类型的vnode实例,而不同类型的vnode实例各自表示不同类型的dom元素。例如dom元素有文本节点,元素节点,注释节点等。tag?children?text?。。这是vnode的构造函数。他其实是一个js节点描述对象。描述了怎么样去创建真实的dom节点。

2023-07-16 15:35:49 616

原创 【vueJs源码】阅读之vm.$watch函数

我们经常使用watch肯定知道它,他和computer一样都是数据发生变化都会触发它。今天我们就来了解一下它的原理。

2023-07-15 15:43:03 417

原创 fatal: ambiguous argument ‘HEAD~1‘: unknown revision or path not in the working tree.

我们在git diff的时候发现有这个问题。

2023-07-14 17:05:51 1286

原创 vue源码阅读之什么是虚拟dom

所谓虚拟dom,就是用一个js对象来描述一个dom节点,比如下面这个示例:长这个样子,是一个对象来描述一个dom节点。比如这个tab是div,是表示元素的标签,text属性是他的文本内容,children是他的子元素列表。还有它的data属性,key属性,parent属性,你能想到的dom节点的所有属性都有表示。然后我们展开他的children属性。也是同样的结构,描述这个节点下面有多少节点,顺序排列,这样就可以描述整个页面元素。这个用js对象表示的dom节点就叫做虚拟dom。

2023-07-09 23:26:19 142

原创 vue对于数组的数据监听变化和object是不一样的吗?

我们知道vue对于数组的数据监听变化和object是不一样的,因为我们常说的Object.defineProperty是对象上面的方法,所以对于array数组需要实现另外一套变化侦测机制。今天我们就来研究下。

2023-07-08 21:50:21 364

原创 vue源码阅读之Watcher类

我们上次分析vue源码讲的是收集依赖,数据变化之后我们把依赖收集到dep类中,通过这个管理器进行管理。里面有一个subs数组,用来存放依赖,并且定义了几个实例方法用来依赖进行添加,删除,通过操作。比如addSub,removeSub,depend、notify等方法。

2023-07-01 17:15:28 516

原创 vue源码依赖收集dep

我们之前讲了vue源码的结构还有vue的数据怎么知道变化的,那么我们知道数据发生变化之后我们怎么去更新视图了。视图那么大,到底更新哪块呢?总不能视图发生变化,我们就把所有的界面都更新一遍,这样太耗性能了,体验也非常的不好。

2023-06-26 23:03:18 132

原创 vue源码阅读之Observer

我们上次学习了vue数据驱动的概念,以及简单的vue怎么知道数据更新,然后采取行动的。今天我们就来继续深入学习,vue怎么把数据和视图给绑定在一起的,数据发生变化,视图怎么会自动发生变化的。

2023-06-18 23:28:03 616

原创 vue2.6源码学习:数据变化监听原理之数据驱动视图(observer)

上次我们看vue2.6源码的时候,大概看了一下整体的项目结构目录。主要是里面的Observer和vdom这两个文件夹。也是vue里面最核心的两个文件夹,今天我们继续来学习。

2023-06-17 14:59:09 936

原创 深度学习框架(Pytorch)学习第1步:包管理系统Anaconda的安装

PyTorch是一种构建深度模型功能完备的框架。通常用于图像识别和语言处理等。使用Python编写,学习和使用起来相对简单。PyTorch的独特之处在于,它完全支持GPU。并且使用反向模式自动微分技术,可以动态修改计算徒刑。使得其成为快速实验和原型设计的常用选择。

2023-06-11 16:42:42 550

原创 vim复制,剪切觉得麻烦?今天就来教会你:vim复制和剪切教程

上次讲了vim移动光标的快捷键,今天我们来了解一下vim的复制多行的功能。

2023-06-10 15:15:36 1789

原创 git提交之后再pull导致很多代码被修改,但是修改又不是你修改的

这样变基到当前仓库分支最新的提交,并将本地的提交应用到最新的提交之上,与普通git pull命令不同,git pull --reabse会将本地的提交变基到最新的提交之上,而不是将本地的提交和远程的提交合并。你本地没有拉master代码,但是你本地提交了一个评审,但是还没和入,这个之后pull一下会把你上次代码更新到这次所有的代码都进行一个对比,如何提交这个。git提交之后再pull导致很多代码被修改,但是修改又不是你修改的,导致你本地很多修改,怎么抛弃掉这些修改呢。然后我们本地执行下面这个命令。

2023-06-01 15:14:55 952

原创 process.env.NODE_ENV可以但是process.env.xxx别的就不行

process.env.NODE_ENV可以但是process.env.xxx别的就不行就会报这个报错信息。看了一下process.env.NODE_ENV这个是webpack编译的时候加入的,而process.env.xxx是用new webpack.DefinePlugin定义的全局变量。所以就在编译的之后,因为我这个库要在浏览器上执行,所以没有process这个模块。

2023-05-30 10:32:55 155

原创 react-scripts Close one! Eject aborted

已经做了npm run eject还是不行。然后试了pnpm eject。使用pnpm run eject也不行。因为我用的是pnpm。

2023-05-11 16:31:40 92 1

原创 二次ssr渲染如何优于csr二次渲染

我们先wirte的骨架屏目前太大,导致白屏时间过长,那就把骨架屏给分段给write。这样二次渲染的骨架屏也能提前出来,不过这个骨架屏现在还是一点一点出来的,没有客户端渲染一次出来。而ssr,因为html片段慢,就算二次,会导致白屏时间长,如何才能让ssr请求更短。还有一条路就是云端内部请求接口耗时提升。这块需要解决,要比浏览器请求快很多。其实还是要优化服务端渲染的白屏时间,所以还是要把第一次的渲染弄的快一点。目前问题是二次渲染csr就是接口耗时。而js缓存可以提供更快的首屏。end之后就没法再发请求。

2023-04-26 11:44:27 54

原创 spawnSync /bin/sh ENOENT

使用child_process.execSync报spawnSync /bin/sh ENOENT。ENOENT是Error No Entry 的缩写。把这个cwd注释掉就好了。

2023-04-20 17:33:47 712

原创 pnpm安装的模块,在全局.pnpm下面有这个模块,在业务页面就找不到这个模块

在本地代码库中有3个包,使用pnpm管理这3个package,然后pnpm i之后,页面里面安装包,是通过软链的方式到了全局的.pnpm模块下面。就找不到。直接写模块的.pnpm绝对路径是可以找到的。但是不直接写就找不到。然后直接写模块也可以,但是写模块内部路径的文件就找不到了。

2023-04-18 17:33:42 699

原创 如何使用爷爷辈的node_module模块执行命令

本来使用npx但是发现npx在当前目录没有或者全局目录没有,会自动安装模块,然后再卸载不符合要求。所以如果不想全局安装解决这个问题,可以采用下面这两个方法。

2023-04-14 16:56:50 222

原创 http-proxy-middleware ECONNRESET报错 at new NodeError (internal/errors.js:322:7) at writeAfter

http-proxy-middleware ECONNRESET报错,是因为nodejs版本不匹配,需要两个设置版本匹配之后。然后按照新的语法书写就OK了。

2023-04-10 16:00:21 494

原创 组件库组件提供函数直接调用

当直接通过函数调用的时候,需要往全局定义一个function,然后去控制这个function,控制他的显示和隐藏。这里面的vueInstance就是我们实际实现的vue组件代码。在组件里面去管理,创建这个组件,然后去显示,传入原有的参数。这个函数内部去写就行了,去设置这个组件的控制显示的属性即可。现在原理搞清楚了,就是要给用户提供一个show和hide。然后创建div,把这个元素给append到页面中去。然后创建的vue组件之后把我们的数据给塞进去。

2023-03-29 14:21:47 116

原创 使用pnpm管理多个代码库vue版本不一致,代码库编译的vue版本用了另外一个库的vue版本导致编译失败

A编译的之后用了B版本库依赖的vue2.5版本,错误了,但是vue-template-compiler又用的是他本身的vue2.6的,导致两者版本不匹配,所以就出了问题。一个代码库我们假设叫他为A使用的是vue2.6,但是另外一个代码库我们假设他叫B依赖vue2.5,然后A代码库有依赖了B代码库,然后这时候vue版本就混乱了。vue是线上运行阶段也要用的东西。但是为啥vue用的是错的,vue-template-compiler是对的,没有都用错。

2023-03-27 10:35:21 433

原创 npm报错seems to be corrupted. Trying one more time.

npm安装一直失败,不知道什么原因,感觉就是npm一会12一会14然后安装包,缓存内容导致的问题。这样重新安装了nodejs然后解决了这个问题。解决办法删除全局的nvm。

2023-03-22 19:47:39 2015 1

原创 ts第三方模块没有types文件按需导出有问题,找到组件,显示undefined

经过研究,原来这个第三方包使用的是commonjs2的规范,commonjs2就是这种module.exports = entry_return形式,而commonjs2是commonjs: exports[‘MyLibrary’] = entry_return这种形式。接下来就是排查下,怎么让ts支持一下这种模块的导入,直接搜索搜不到这类答案,直接导入*发现是有个default属性,无法使用,default上面的也是原始组件,不是想要的导出的方式。然后根据这个就去看第三方包的编译产出是什么形式,

2023-03-14 11:36:23 562

原创 mac设置node默认版本

比如我打开命令行iterm,然后执行node -v,发现默认版本是13,我想设置到12.然后每次打开命令行的时候就是node 12版本了。然后编辑 ~/.bash_profile。可以使用nvm执行下面命令。

2023-02-02 16:29:35 814

原创 vscodevue文件高亮显示不对问题

我就去搜索vscode装了什么vue相关的插件,结果发现我不止装了vetur这个插件,还装了vue的插件,这个vue插件卸载之后就好了。分析原因:vscode的vue文件高亮是根据插件来显示的。箭头指的那块是白色的,因为我修复了,所以这块显示正常了。也就是说vue高亮插件装一个vetur这个插件就够了。不知道为什么我的vscode的高亮显示不对,

2023-01-08 14:52:46 946

原创 sass添加全局函数

增加这个,这样全局就会有对应的scss函数,直接在webpack的专门的scssloader里面是不生效的。需要指出因为我们是vue文件里面使用scss,所以这块scss的解析需要在vue-loader里面去解决。所以配置scss全局函数我们需要在vue-loader里面去添加。这里的vueLoaderConfig就有对scss语法的配置。里面关键在于utils.cssLoaders这个函数的实现。这是webpack.base.conf.js。这是vueloaderconf。例如下面这种配置就是不生效的。

2023-01-07 16:19:50 364

原创 通过机器域名查看机器ip

使用ping命令去ping这个机器的域名就可以找到对应的ip地址。

2023-01-05 10:58:55 292

原创 vscode Vue文件代码显示不高亮问题

这些地方显示的都不对,经过搜索发现,打开vscode的设置json进行编辑。加入这一行就可以解决这个问题。保存之后高亮就正常了。我用vscode打开vue文件高亮显示不对。

2022-12-31 14:55:18 2574

原创 构成需求的要素

大明:对自己需求比较了解。

2022-12-27 23:37:00 139

原创 Invalid: `{ presets: [{option: value}] }` Valid: `{ presets: [[‘presetName‘, {option: value}]] }

nuxt启动项目报错。

2022-12-01 15:59:04 440

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除