摘要: js实现pdf文件上传预览功能 > 需求: 上传预览功能, 支持图片和pdf上传预览, 并且是在指定的div里面预览 主要使用的是pdfjs库 pdfjs可以轻松实现点击打开一个新的页面或一个大的dialog在原页面实现预览, 但是不支持(可能是我没找到)在指定的div里面预览 这里要实现的是在指定 阅读全文
posted @ 2023-06-14 09:46 littlelittleship 阅读(644) 评论(0) 推荐(0) 编辑
摘要: plugin插件的原理 扩展webpack, 加入自定义的构建行为 webpack内部的钩子 hooks tap: 可以注册同步钩子和异步钩子 tapAsync: 回调方式注册异步钩子 tapPromise: promise方式注册异步钩子 Compiler构建对象, 保存着完整的webpack环境 阅读全文
posted @ 2022-07-21 00:44 littlelittleship 阅读(79) 评论(1) 推荐(0) 编辑
摘要: loader的基本原理 帮助浏览器将不同类型的文件资源转化为浏览器可识别的资源 分类 前置loader: pre 普通loader: normal 内联loader': inline 后置loader:post 执行顺序: pre > normal > inline > post 相同优先级: 从右 阅读全文
posted @ 2022-07-20 23:54 littlelittleship 阅读(92) 评论(0) 推荐(0) 编辑
摘要: webpack的基础用法2 webpack的优化方向 提升开发体验 提升打包构建速度 减少代码体积 优化代码运行性能 SourceMap 生成一个.map文件,形成一个映射, 可以通过错误找到源文件 开发模式: cheap-module-source-map 优点: 打包编译速度快, 值包含行映射 阅读全文
posted @ 2022-07-20 23:16 littlelittleship 阅读(68) 评论(0) 推荐(0) 编辑
摘要: webpack的基本使用 webpack 本身功能有限: 开发模式: 仅能编译JS中的ES Module 语法 生产模式: 能编译ES Module 语法, 还能压缩JS代码 添加实例文件 npm init -y src/main.js // 引用下面export的函数 src/js/add.js 阅读全文
posted @ 2022-07-19 17:02 littlelittleship 阅读(46) 评论(0) 推荐(0) 编辑
摘要: # vue双向数据绑定原理实现 ### 准备工作 ​ 新建一个index.js文件, 一个index.html文件 ​ index.js文件中, 定义Vue类, 并将Vue并称全局变量 window.Vue = Vue ​ index.html中引入index.js ​ *index.js* ``` 阅读全文
posted @ 2022-07-03 02:13 littlelittleship 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 组件的虚拟节点 分全局组件 和 局部组件 全局组件 Vue.component('my-button', { template: '<button>点击</button>' }) 局部组件 const vm = new Vue({ el: '#app', data() { return {name: 阅读全文
posted @ 2022-06-28 03:04 littlelittleship 阅读(47) 评论(0) 推荐(0) 编辑
摘要: watch的实现原理 watch和computed一样, 也是基于 Watcher 的 组件内部使用的watch 和 外部使用的 vm.$watch()都是调用的Vue.prototype.$watch方法 当依赖的属性发生变化, 更新的时候执行回调就行了 vue'中watch有多种写法, 这里只简 阅读全文
posted @ 2022-06-27 13:07 littlelittleship 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 计算属性的实现原理 计算属性也是一个watcher 计算属性定义成方法, 使用的时候直接vm.XX,是因为使用Object.defineProperty在vm实例上定义了属性 计算属性的依赖更新值发生改变是通过脏值检测来实现的 计算属性watcher不能更新视图, 只会更新里面的dirty属性,真正 阅读全文
posted @ 2022-06-27 04:08 littlelittleship 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 数组更新实现原理 之前我们给每个属性添加了dep, 让dep去收集依赖 当使用push方法改变数组的时候, 并没有改变属性, 而是改变了数组本身 因此, 需要让数组,或对象和属性一样, 也能收集依赖, 并且在检测到数组变化的时候触发更新 在Observer 类中对每一个对象对进行依赖收集 class 阅读全文
posted @ 2022-06-27 01:28 littlelittleship 阅读(74) 评论(0) 推荐(0) 编辑