摘要: vue-clearcss 会找到你css中没有使用的css样式,是否删除由使用者自己决定,工作起来就像eslint ###为什么要用它? 一个vue文件在长期迭代中css会越来越冗余,它不像html和js那么好删除,html你要是多了页面会展示,js你只要看下它用的地方就可以了 然而css比如scs 阅读全文
posted @ 2021-08-30 23:22 爱吃巧克力的狗 阅读(2519) 评论(1) 推荐(0) 编辑
摘要: 工作中用到了这个插件 好奇是通过ast还是什么方式实现的判断代码是否调用了某个库,所以就研究了下 准备工作 1 一个vite项目 安装了该插件,预设只有vue import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vu 阅读全文
posted @ 2023-12-09 23:59 爱吃巧克力的狗 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 刚用vue3的时候觉得习惯了之后非常爽,比vue2比起来要灵活,ref、reactive等新api写几个页面也基本理解用法了。 但是逐渐深入后发现遇到一些疑难问题的时候,排查起来非常困难,其依赖收集比起vue2复杂太多,我在写pinia插件的时候尤其痛苦, 感觉心智负担比原来重多了,所以这篇文章记录 阅读全文
posted @ 2022-12-01 17:35 爱吃巧克力的狗 阅读(81) 评论(0) 推荐(0) 编辑
摘要: ###解读一些经常使用的方法 $subscribe和$onAction subscribe和onAction都是执行addSubscription方法只是subscribe多了一步对state进行watch $subscribe(callback, options = {}) { const rem 阅读全文
posted @ 2022-11-29 11:36 爱吃巧克力的狗 阅读(157) 评论(0) 推荐(0) 编辑
摘要: ###定义模块 这一步很复杂,用几个流程图来梳理一下 createOptionsStore方法 createSetupStore方法 数据流向 最后整理下数据的流向变更,对于写pinia插件很有帮助 option写法版本 pinia.state.value[$id] --> 原生的state对象 s 阅读全文
posted @ 2022-11-29 11:15 爱吃巧克力的狗 阅读(78) 评论(0) 推荐(0) 编辑
摘要: ###定义模块 store.ts文件的defineStore方法 判断是option写法还是setup写法 isSetupStore = typeof setup 'function' 内部创建useStore函数,并给函数绑定$id属性为用户设置的id,然后返回 用户在外部任意位置调用useSto 阅读全文
posted @ 2022-11-28 16:19 爱吃巧克力的狗 阅读(251) 评论(0) 推荐(0) 编辑
摘要: ###初始化 createPinia.ts 主要有3步 effectScope生成了一个作用域在内部调用ref({})用来存储所有模块的state 创建了一个pinia实例,里面包含了use和install方法和一些关键属性 install内部使用vue的provide来传递pinia实例 use用 阅读全文
posted @ 2022-11-28 16:01 爱吃巧克力的狗 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 在网页可以很轻松的添加一个类似tip的全局组件,但是在微信小程序,每个页面都是单独的,无法使用全局组件, 基于此限制,我写了一个自动在每个页面添加组件的webpack插件。 ###实现方法 方法大家应该都能想到,在main.js里使用vue.component()来注册全局vue组件,然后在每个页面 阅读全文
posted @ 2022-06-17 11:50 爱吃巧克力的狗 阅读(790) 评论(0) 推荐(0) 编辑
摘要: 之所以写这篇文章,是因为前几天被一个标题党给骗了,开头写的多高级说是大厂面试官问起tree sharking的原理,面试者回答不上,然后就解答了这个原理,还引起我的好奇心,就读了下去,最后结论简单来说1.要用es6 2.webpack是通过ast解析来完成的,读完之后我觉得自己被骗了,写的什么东西啊 阅读全文
posted @ 2022-05-12 16:52 爱吃巧克力的狗 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 记录下研读vue-devtools源码的成果 ###开发者工具是如何从浏览器获取vue组件的相关状态 代码在packages\app-backend-core\src\legacy\scan.ts 简单点说从document开始往下遍历子元素,如果子元素有__vue__,那么就是vue组件绑定的do 阅读全文
posted @ 2022-03-04 16:39 爱吃巧克力的狗 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 公共的代码包括公用的vue组件和js代码,从维护性的角度来说应该放到主包才对, 但是主包有大小限制,如果把2个分包都在用的代码放到主包里面那2M很快就满了。 所以该放在哪?我的方案是从维护的角度放在主包,然后用webpack的插件在打包的时候 把只有分包在用的vue和js代码分别放到分包中去。 un 阅读全文
posted @ 2022-02-06 21:58 爱吃巧克力的狗 阅读(472) 评论(0) 推荐(0) 编辑