- 博客(16)
- 收藏
- 关注
原创 图片懒加载
图片懒加载其实就是延迟加载<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &
2022-05-02 11:20:34
149
原创 webpack学习
webpack的基本配置入口文件(entry)要打包哪个文件出口文件(output)要打包到哪里去加载器(loader)作用:加载除js文件其他文件的功能(css less 图片)webpack只能处理js文件,非js文件(css less 图片 字体等处理不了,只能借助加载器处理一般兼容性的处理都是使用loader处理样式 style-loader css-loader less-loader处理图片 url-loader file-loader区别:url-
2022-04-23 22:10:49
1074
原创 JS基础知识
new实现过程及源码创建一个空对象将空对象的隐式原型(_proto_)连接到构造函数的原型上执行构造函数返回这个对象function myNew(fun){ retrun function(){ //创建一个空对象,并将其隐式原型指向构造函数的原型 let obj ={ __proto__ = fun.protoType } //执行构造函数 fun.call(obj,...argu
2022-04-18 14:51:50
359
原创 CSS知识点
CSS1.CSS选择器1.1css基础选择器-标签选择器1.2 css基础选择器-类选择器1.3 css基础选择器-ID选择器1.4 css高级选择器-后代选择器后代选择器用空格表示<div class='father'> <span> 儿子1 <span>孙子1</span> </span> <span>儿子2</span></div>.fath
2022-04-17 22:30:52
366
原创 Vue-Router 各个钩子介绍
Vue-Router参数或者查询的改变并不会触发进入/离开的导航守卫,可以通过观察$route对象来应对这些变化,或者使用beforRoute的组件内守卫全局前置守卫 router.beforeEach注册全局前置守卫cosnt router = new VueRouter({...})router.beforeEach((to,from,next)=>{ //...})当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行的,此时导航在所有守卫resolve完之
2022-03-30 20:43:42
2365
原创 手写Promise
Promisepromise 的基本语法目的:promise 是书写异步代码的另一种方式,解决回调函嵌套的问题如何创建一个promise 对象const p = new Promise((resolve,reject)=>{ //promise 内部一般可以封装一个异步操作 //resolve reject 是 promise 内部提供好的两个函数 //resolve 成功的回调=>将promise状态从pending改成fullfilled //r
2022-03-26 17:39:49
223
原创 虚拟DOM 和 diff 算法
虚拟DOM 和 diff 算法研究1:虚拟DOM如何被渲染函数(h函数)产生? — 我们手写h函数研究2:diff 算法原理?— 我们要手写diff 算法研究3:虚拟DOM 如何通过diff 变成真正的DOM的—事实上,虚拟DOM变成真正的,是涵盖在diff算法里面的项目创建创建文件夹:vnode使用npm init 管理vnode 文件安装 snabbdom npm i -S snabbdom安装webpack 相关包 npm i -D webpack@5 webpack-cli
2022-03-25 13:51:26
1127
原创 Vue知识点汇总
Vue知识点汇总vue双向绑定原理vue.js是采用了数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty来劫持各个属性的setter和getter,在数据变动的时候发布消息给订阅者,触发相应的监听回调具体步骤:第一步:需要observe的数据对象来进行递归遍历,包括子属性对象的属性,都加上setter和getter,这样的话,给这个对象的某个值赋值时,就会触发setter,那么就能监听到数据的变化第二步:compile解析模板指令,将模板中的变量替换成数据 ,然后
2022-03-21 09:55:33
1315
原创 JS 各种基本概念对比
1. 箭头函数和普通函数的区别a. 箭头函数和普通函数的样式不同,箭头函数语法更加简洁、清晰,箭头函数是=>定义函数,普通函数是function定义函数。b. 箭头函数会捕获其所在上下文的 this 值,作为自己的 this 值,定义的时候就确定并固定了。c. 箭头函数不能作为构造函数使用,也不能使用new关键字(因为箭头函数没有自己的this,它的this其实是继承了外层执行环境中的this,且this指向永远不会改变,作为构造函数其的this要是指向创建的新对象)。d. 箭头函数没有自己的
2022-03-18 20:52:48
323
原创 Uniapp 使用技巧
1 扫描二维码 (h5)uniapp中实现h5扫描二维码功能这里的reqrcode.js文件在asset/第三方JS文件中<script>var qrcode = require("../../common/js/reqrcode");export default { data() { return { scanWord:'' //二维码数据 }; }, methods: { scan() { let _this = this
2022-03-09 22:38:12
1133
原创 用Vue CLI创建uniapp项目
用Vue CLI创建uniapp用Vue CLI创建uni-app,摆脱HBuilder,npm命令行运行及发布除了 HBuilderX 可视化界面,也可以使用 cli 脚手架,可以通过 vue-cli 创建 uni-app 项目。如果是老的项目,也可以通过下方步骤,创建一个 uni-app 选择默认模板,然后将项目原封不动的复制到新项目的 ./src 目录。执行 npm run serve / npm run build 就可以运行和打包了。1. 环境安装全局安装vue-clinpm ins
2022-03-03 21:01:20
7797
原创 JS的遍历方法集合
24个JavaScript循环遍历方法24个JavaScript循环遍历方法一 数组方法1. forEach()forEach 方法用于调用数组的每一个元素,并将元素传递给回调函数。数组中的每一个值都会调用回调函数。 array.forEach(function(currentValue,index,arr),thisValue)该方法的第一个参数为回调函数,是必传的,它有三个参数:currentValue: 必须,当前元素index: 可选,当前元素索引值arr: 可选,当前元素所
2022-03-02 22:04:09
20032
原创 正则表达式学习
正则表达式1 正则表达式的定义正则校验网站1.1 字面量写法var expression = /pattern/flagsexpression.test('校验内容')1.2 构造函数写法var expression = new RegExp(pattern,flags)expression.test('校验内容')2 元字符. 匹配任意字符匹配任意字符除了换行字符^ $ 位置字符^ : 匹配字符串开始的位置$ : 匹配字符串结束的位置\w \W 匹配数字和字母\
2022-03-01 21:27:35
118
原创 git 方法
git 方法 :第一次拿到项目 :1. 设置提交代码的用户名和电子邮件地址(不重要) 这两个命令不重要,知道就好,一次性操作 git config –global user.name “[name]” git config –global user.email “[email address]”2. 第一次从github/GitLab上拉代码 (不重要) 一次性操作,知道就好 git clone [url] 该命令可用于通过指定的URL获取一个代码库。3.
2022-02-27 19:37:25
578
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人