
前端
H_xiang_xiang
这个作者很懒,什么都没留下…
展开
-
实现一个hash路由,以及history路由
先验最近在看vue-router源码,先了解一下两种前端路由模式的具体实现。hash路由:监听url的hash部分变化,渲染相应组件hash路由的变化需要监听hashchange事件,事件对象里有oldURL、newURL属性表示变化前后的urlwindow.addEventListener("hashchange", function (e) { console.log(e.oldURL, e.newURL);})封装一个函数,从获得的url里面,需要提取出hash部分functi原创 2021-09-14 11:28:45 · 488 阅读 · 0 评论 -
require.ensure简单理解
所有 js模块 打包成一个 bundle.js 太大了,可以把某些 js模块 单独打包,等要用到的时候,webpack 自动创建 script 标签去请求这个js文件require.ensurerequire.ensure( [], // 依赖 () => {// 回调函数,在这里按需引入模块和处理逻辑 require('@/components/home') }, 'demo') // webpackChunk名,同名的打包进同个bundle}原创 2021-08-30 18:13:49 · 6441 阅读 · 1 评论 -
原生JS实现文件上传和监视上传进度(实现进度条)
实现结果小demo地址:https://gitee.com/huangxx678/fileuploadbar.git立个Flag:等我好好学完后端再重新写个完整的 ^ _ ^先验知识点MDN:FormDataFormData 接口可以把表单数据构造成键值对,然后通过 XMLHttpRequest.send() 发送。MDN:XMLHttpRequestprogress 事件,监测传输进度,e.lengthComputable 表示当前传输文件的长度是否可知,e.loaded 表示已经传输的字原创 2021-08-20 19:37:25 · 5479 阅读 · 1 评论 -
原生js实现懒加载中判断元素出现在可视区域的一种方式,封装函数:获取当前元素距离html文档顶部距离
懒加载延迟加载,等内容进入可视区域了再去加载资源如何判断元素出现在可视区域?1)获取被监视的元素到页面顶部的距离 element.offsetTop (前提:没有定位的祖先)2)获取页面垂直滚动的距离 window.pageYOffset3)获取可视区域高度 window.innerHeight4)当 element.offsetTop - window.pageYOffset < window.innerHeight 即为元素出现在可视区域获取元素到页面顶部的距离 elem原创 2021-08-19 19:49:27 · 722 阅读 · 0 评论 -
Function和Object之间的原型链关系
原创 2021-08-11 01:38:14 · 211 阅读 · 0 评论 -
CSS堆叠顺序图形化理解、z-index细节
结果文字说明原创 2021-07-31 13:40:34 · 134 阅读 · 0 评论 -
一个DOM元素绑定多个事件时,先执行冒泡还是捕获
答案是:先执行捕获看到一些说法称 “绑定在被点击元素的事件是按照代码顺序发生”,实际测试了一下,被点击元素的事件也是先捕获、后冒泡<div id="s1">s1</div><script> s1.addEventListener("click", function(e) { console.log("s1 冒泡"); }, false); //冒泡 s1.addEventListener("clic原创 2021-07-21 13:31:53 · 287 阅读 · 1 评论 -
URL中的hash一些相关内容
#的含义#代表网页中的一个位置,#后面的内容是这个位置的标识符。页面中设置锚点就是这个原理,点击链接会跳转到#指定的区域<a href="#content">跳转到content区域</a>...<div id="content">...</div>单页面应用也使用 # 切换页面中的组件,比如 vue 利用 vue-router,点击链接在 router-view 区域显示content组件<router-link to="#/conte原创 2021-07-06 17:03:59 · 568 阅读 · 0 评论 -
github或gitee上传的md文件,目录[toc]无效
vscode安装 Markdown All in One 插件光标定在md文件中需要需要生成目录的位置,Ctrl+Shift+P 快捷键,输入 markdown all in one:update table of contents,选择更新目录项,自动生成目录。原创 2021-07-04 18:40:42 · 1242 阅读 · 0 评论 -
webpack中的publicPath理解
文章目录output.pathoutput.publicPathwebpack-dev-server配置项中的publicPath路径问题衍生出的引用问题记录一下自己用webpack打包过程中遇到的三个路径问题:分别是output.path、output.publicPath、webpack-dev-server配置项中的publicPathoutput.pathoutput.path指定了webpack打包的总出口,是打包出来的所有文件在硬盘中的存储位置,是一个绝对路径。通常配置如下,即 打包出来的原创 2021-07-01 12:16:50 · 3473 阅读 · 0 评论 -
webpack打包发布中的图片路径问题记录:报错图片找不到、打包路径下没有生成images文件夹或少打包图片、打包之后打开页面img标签src=“[object Module]“
文章目录报错图片找不到打包路径下没有生成images文件夹或少打包图片打包之后打开页面img标签src="[object Module]"最终打包结果结构报错图片找不到原本配置:我在 development 模式下测试的时候,是把主页 index.html 和 bundle.js 都放在虚拟内存中,即通过http://localhost:port/就可以直接访问还在使用webpack-dev-server的时候设置了 –content-base src ,也就是说静态资源的根目录是 src所原创 2021-06-30 21:44:42 · 1879 阅读 · 0 评论 -
mui的numbox组件使用相关问题:动态改变数据框上限值
在项目中使用mui框架的NumBox组件作为子组件 NumBox.vue,在页面中引入子组件并注册、使用。数据说明:这个页面是某个商品的详细信息,数据是父组件中通过ajax获得的,存放在 goodsinfo 对象里,其中 goodsinfo.stock_quantity 是库存数量。原NumBox组件中,数量框中最大数量是定死的现在希望这个数量框的上限是根据库存来的一种此处不可行的方案用父组件向子组件传值,把父组件中的 goodsinfo.stock_quantity ,通过 max 传递给原创 2021-06-28 09:12:00 · 405 阅读 · 0 评论 -
vue-preview实现缩略图踩坑记录:Property or method “$preview“ is not defined 用不了、无法修改图片样式
基本配置1、下载npm i vue-preview -S 2、在index.js中引入并安装import VuePreview from'vue-preview'Vue.use(VuePreview) 3、 如果是按照早几年的视频教学方法,会在页面中引入以下标签<img class="preview-img" v-for="(item, index) in list" :src="item.src" height="100" @click="$preview.open(index,原创 2021-06-26 20:57:01 · 863 阅读 · 3 评论 -
webpack 4移除严格模式,解决引入mui.js报错
想用MUI的滑动组件,引入了 mui.js 报严格模式相关的错,因为组件里面有不严格模式,用而webpack打包默认使用严格模式,所以需要取消webpack的严格模式(毕竟把第三方组件改成严格模式更麻烦)报错信息解决办法下载@babel/plugin-transform-modules-commonjs 、 @babel/plugin-transform-strict-modenpm install -D @babel/plugin-transform-modules-commonjs @b原创 2021-06-26 14:28:27 · 363 阅读 · 1 评论 -
webpack中使用 async/await 所需的配置
下载所需babelnpm install -D @babel/plugin-transform-runtimenpm install -D @babel/plugin-transform-regenerator.babelrc配置文件里添加这两个插件{ "presets": [ ["@babel/preset-env", { modules: false }] ], "plugins": [ "@babel/plugin-transf.原创 2021-06-24 20:12:24 · 903 阅读 · 0 评论 -
webpack-dev-server自动打开chrome浏览器的方式
不做 chrome配置的话,自动打开Edge浏览器按如下配置指令..."scripts": { "dev": "webpack-dev-server --progress --open chrome --port 8888 --content-base src", },...–progress --open chrome:自动打开chrome–port 8888:自定义端口–content-base src:设置打开位置...原创 2021-06-24 20:04:05 · 1456 阅读 · 0 评论 -
webpack 4之css文件单独打包以及压缩
我使用的webpack版本是 “webpack”: “^5.38.1”,,webpack 4之后有很多东西用法发生了变化,在此简单记录使用中出现过的问题。用 style-loader 使用 style 标签将样式插入到页面中以下两部分一般同时用抽离css文件为了把css样式拎出来作为一个.css文件npm install -D mini-css-extract-pluginconst MiniCssExtractPlugin = require('mini-css-extract-pl原创 2021-06-21 15:12:42 · 346 阅读 · 0 评论 -
webpack 4之js文件压缩
我使用的webpack版本是 “webpack”: “^5.38.1”,,webpack 4之后有很多东西用法发生了变化,在此简单记录使用中出现过的问题。npm install -D uglifyjs-webpack-plugin这篇可以和上一篇使用vendors分离第三方模块结合起来 const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); module.exports = { entry: { app: './s原创 2021-06-21 15:05:43 · 330 阅读 · 0 评论 -
webpack 4之vendors 提取第三方模块
我试用的webpack版本是 “webpack”: “^5.38.1”,,webpack 4之后有很多东西用法发生了变化,现查现用把。需要把第三方模块单独拎出来打包成一个js文件,在webpack生产环境中配置:// webpack.publish.config.jsmodule.exports = { entry: { app: './src/index.js', // 项目主入口文件 vendors: ['jquery'] // 分离第三方模块 }, output:原创 2021-06-21 15:00:58 · 1345 阅读 · 0 评论 -
webpack 4之clean-webpack-plugin插件实现重新打包前自动清空dist文件夹
我试用的webpack版本是 “webpack”: “^5.38.1”,,webpack 4之后有很多东西用法发生了变化,现查现用把。下载插件:npm install -D clean-webpack-pluginwebpack生产环境配置// webpack.publish.config.js const {CleanWebpackPlugin} = require('clean-webpack-plugin') module.exports = { ... plugin原创 2021-06-21 14:57:16 · 401 阅读 · 0 评论 -
webpack插件使用报错:CleanWebpackPlugin is not a constructor
用 clean-webpack-plugin 插件,在每次发布之前先把dist老文件清空npm install -D clean-webpack-pluginpackage.json 简化打包指令“scripts”:{ "pub": "webpack --config webpack.publish.config.js"}webpack.publish.config.js 错误配置const CleanWebpackPlugin = require('clean-webpack-plug原创 2021-06-21 10:41:28 · 318 阅读 · 0 评论 -
如何使用vscode的终端(保姆级)
1、装 Code Runner 插件2、顶部工具栏 终端->新终端->选择当前工作文件夹3、搞一个输出测试一下(右键->run code),ok4、咦,终端为何如此5、找到vs程序图标,右键->属性->目标这一栏末尾 一个空格之后 追加 --disable - gpu6、重启vscode,okk!...原创 2021-06-03 21:51:00 · 32797 阅读 · 5 评论 -
webpack配置出错:Error: Cannot find module ‘webpack-cli/bin/config-yargs‘
出现这个问题请移步这里原创 2021-06-03 21:36:25 · 142 阅读 · 0 评论 -
webpack基础配置和恼人的版本坑!
通过一个小小小的项目来走一遍webpack最最基础的流程吧!文章目录项目目录基本配置打包热更新Error: Cannot find module 'webpack-cli/bin/config-yargs'项目目录 root |__dist | |__bundle.js |__src | |__images | |__css | |__js | |__main.js | |__index.html |__webpack.config.j原创 2021-06-03 21:28:37 · 230 阅读 · 0 评论 -
mouseout和mouseleave
mouseout:有冒泡机制,鼠标从father进入内部子元素son区域算mouseout,离开内部子元素son区域到father也算mouseout(相对子元素的离开行为冒泡到了父元素身上),离开father也算mouseoutmouseleave:没有冒泡,一旦进入father,就可以在里面自由活动,只有离开father本身才算mouseleave...原创 2021-05-12 18:03:39 · 199 阅读 · 0 评论 -
bootstrap模态框插件-弹出框变暗问题
使用bootstrap模态框插件出现弹出框和背景一起变暗的问题。看起来就像弹出框被遮在了mask下面,考虑z-index优先级关系。可以看到遮罩层.modal-backdrop的z-index: 1040;解决办法:设置.modal-dialog { z-index: 10000!important;}修改完成:...原创 2020-11-02 10:15:00 · 752 阅读 · 2 评论 -
模拟淘宝轮播图
功能自动轮播,鼠标进入轮播区后变为手动控制;鼠标进入轮播区出现左右移控制箭头;图片由左右移箭头控制切换,并且底部轮播圆圈相应变化底部轮播圆圈数量自适应图片数量;点击圆圈切换图片效果备注1、本案例完整资源参见:2、可以通过控制台观察索引变化3、没有做无缝轮播,日后有空再完善代码1、html页面框架 lunbo.html<div class="lunbo"> <!-- 滚动区域 --> <ul class="gundon原创 2020-10-22 09:26:32 · 580 阅读 · 0 评论 -
nodejs的express安装及自动生成项目框架问题
前提nodejs已经下载安装,并配置好环境变量测试:node -vnpm -v下载最新express很多经验说用npm install -g expressnpm install -g express-generator但我npm install -g express就报错了建议先npm install -g express-generator,再npm install -g express创建项目express mynode.js启动项目根据上图的三个指令启动项目原创 2020-08-11 10:28:21 · 259 阅读 · 0 评论 -
html标签及属性等相关整理笔记(不定期更新)
一、HTML标签简写及全称大全HTML标签英文全称中文释义aAnchor锚abbrAbbreviation缩写词acronymAcronym取首字母的缩写词addressAddress地址altalter替用(一般是图片显示不出的提示)bBold粗体(文本)bdoDirection of Text Display文本显示方向bigBig变大(文本)blockquoteBlock Quotation区块原创 2020-05-13 16:40:47 · 228 阅读 · 0 评论