![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
一颗lemon冰
这个作者很懒,什么都没留下…
展开
-
前端部分算法的实现
1. 通过快慢指针寻找链表中点function findCenter(head) { let slower = head, faster = head; while (faster && faster.next != null) { slower = slower.next; faster = faster.next.next; } // 如果 faster 不等于 null,说明是奇数个,slower 再移动一格 i原创 2021-10-20 16:23:24 · 221 阅读 · 1 评论 -
前端图片上传时使用canvas进行图片压缩
使用场景:后端无需做图片大小验证,前端直接进行图片压缩,传给后端base64格式的图片地址。话不多说直接上代码:<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="原创 2021-09-17 10:04:36 · 452 阅读 · 0 评论 -
vue+ts如何快速引入多个组件
vue+ts如何快速引入多个组件1.需求说明:在我们日常开发过程中经常会遇到某一个vue文件中要引入多个子组件,如果数量少的情况下我我们用传统方式引入还可以,如下import MainView from './components'2.实现方法:试想一下,如果你这个页面依赖几十个组件你还会选择这样引入吗?答案肯定是不会,话不多说直接上代码(示例为vue+ts语法)。const modulesFiles = (require as any).context('./components', t原创 2021-08-27 11:33:46 · 1506 阅读 · 0 评论 -
一个页面同时使用两个video标签自动播放在各个移动端浏览器存在的问题
双video标签(一个为背景,一个屏幕居中展示)在各大浏览器中存在的问题:一、安卓端:1.华为自带浏览器:两个视频可以同时自动播放,但自动播放时默认都是静音播放。2.百度浏览器:上方视频播放时第背景视频自动暂停,且上方视屏自动播放时也默认为静音播放。3. QQ浏览器:上方视频播放时背景视频自动暂停,但上方视频自动播放时为有声播放。4. UC浏览器:两个视屏可以同时自动播放,背景视频自动播放时为静音播放,上方视频为有声播放。...原创 2021-05-21 12:02:43 · 3017 阅读 · 0 评论 -
echarts legend后边加入数据
有的时候业务会有在图例上边分别显示数据的情况,多数情况为数量或比例,我以比例为例给大家做一个演示,话不多说直接上代码。legend: { orient: 'vertical', x: 'right', //可设定图例在左、右、居中 y: 'center', //可设定图例在上、下、居中 align: 'left', // 文字位置 itemHeight: 16, // 每个图例的宽度 itemWidth: 16原创 2021-05-14 15:03:47 · 4075 阅读 · 0 评论 -
es6对象遍历方法
es6对象遍历方法1. for…infor…in循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性)。2. Object.keys(obj)Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名。3. Object.getOwnPropertyNames(obj)Object.getOwnPropertyNames返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名。4. Object原创 2021-01-07 16:28:56 · 1222 阅读 · 0 评论 -
记录一下ant-design-vue 如何清除表单残留信息(包括校验不通过提示语)
记录一下ant-design-vue 如何清除表单残留信息(包括检验不通过提示语)话不多说直接上代码HTML代码如下: <a-modal title="修改部门" :visible="visibles" @ok="handleEdit" @cancel="handleCancelEdit"> <a-form-model ref="editForm"原创 2020-08-25 18:13:31 · 7955 阅读 · 0 评论 -
AMD,CMD,CommonJs到底是何方神圣?以及三者之间的区别
这篇短文写的挺清晰。知道JS有模块化开发的说法,也偶尔听过requireJs,AMD,CMD等等名字,甚至使用node的时候,还用过require之类的方法,但是对这些一直没有一个明确的认识和概念。想必这就是许多新手刚接触这方面知识时的一个普遍状态。其实仅仅做一些基础的活儿的时候,并不需要对它们有太多的了解,知道怎么用就行了,管他是什么理念,是什么实现呢。于是人就懒下来了。终于有一天,下定决心,一定要把这一块知识搞清楚,至少对此有个鲜明的认知,不再那么朦朦胧胧,A/C不分。查了一些文章博客和知乎回答转载 2020-07-05 07:53:55 · 697 阅读 · 1 评论 -
基于node.js,手动搭建webpack集成vue
什么是webpack,为什么要使用它?一. webpack核心entry:入口output:出口loader:资源转换器plugin:插件mode:模式还有其他的打包压缩工具:grunt:https://www.gruntjs.net/gulp:https://www.gulpjs.com.cn/fis3(百度):http://fis.baidu.com/webpack:https://webpack.js.org/1、什么是WebpackWebPack可以看做是资源构建,模块原创 2020-07-04 18:39:23 · 234 阅读 · 1 评论 -
Vue+Element-UI 开发电商管理系统旅行记(二)
登录页面的逻辑一 . 登录页面布局二 . elementUI表单验证及登录逻辑diansubmitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { login(this.ruleForm.username, this.ruleForm.password).then((res) => { // console.log(re原创 2020-06-18 00:49:55 · 163 阅读 · 0 评论 -
原生ajax的请求流程
//第一步,创建XMLHttpRequest对象var xmlHttp = new XMLHttpRequest();function CommentAll() { //第二步,注册回调函数 xmlHttp.onreadystatechange =callback1; //{ // if (xmlHttp.readyState == 4) // if (xmlHttp.status == 200) { // var原创 2020-06-15 08:09:23 · 320 阅读 · 0 评论 -
想了解前端路由原理的小伙伴们快来观看
一 . 前端路由是什么前端路由主要应用在spa(单页面开发)的项目中。在无刷新的情况下,根据不同的URL来显示不同的组件或内容。前端路由实现的原理:hash值 + onhashchange事件<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, in原创 2020-05-31 19:01:07 · 105 阅读 · 0 评论 -
vant UI与rem适配问题
vue-cli4.x项目引入vant-ui,要求在项目中使用rem单位,但vant是px的.故,需要添加一个自动转换插件和一段修改html根元素的font-size值的脚本一.添加插件: npm i postcss-plugin-px2rem --save添加之后需要在vue.config.js文件中加一段该插件的配置.参考博客链接:https://www.cnblogs.com/taohuaya/p/10274993.htm使用默认配置即可,minPixelValuen设置为3.表示3px以上才转换翻译 2020-05-21 21:52:11 · 868 阅读 · 0 评论 -
vue 使用vue-awsome-swiper
1. 首先下载插件:cnpm install vue-awesome-swiper@2.6.7 --save我的网速慢,使用cnpm代替npm,@2.6.7表示安装的版本,–save本地测试。2. 使用:全局挂载:import Vue from 'vue'import VueAwesomeSwiper from 'vue-awesome-swiper'// require stylesimport 'swiper/dist/css/swiper.css'Vue.use(VueAweso原创 2020-05-15 19:31:32 · 221 阅读 · 0 评论 -
举例浅谈ES6 解构赋值
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值。其实就是提取数组和对象中的值,对变量进行赋值,这种方法就称为解构赋值但是他需要注意的就是定义和赋值必须要放在一起,否则就会给你报错,取不到数据,解构赋值就是对js的赋值运算符的扩展,它的好处就是让我们能够快速的能从复杂的对象中取出我们想要的数据 // 传统 var arr = [1,2,3]; //把数组的值分别赋给a,b,c几个变量 var a = arr[0]; var b = arr[1]; var c .原创 2020-05-13 15:58:01 · 155 阅读 · 0 评论 -
vue实现下拉加载更多之vue-infinite-loading
假设你的项目已经可以正常运行(1) 安装淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org(安装插件有时需要翻墙,为了避免这种情况我直接安装了淘宝镜像 ) (2) 安装插件 cnpm install --save vue-infinite-loading(3) 在需要的页面中引入vue-infinite-loading : <template> <div class="cont原创 2020-05-13 15:37:44 · 873 阅读 · 0 评论 -
微信小程序如何封装数据请求
完成一个小程序项目,我们肯定会请求跟多接口,为了我们代码的可读性和可维护性更好,我们可以将我们请求的接口进行封装。封装步骤如下。1.首先在根目录下创建一个http文件夹,在文件夹下分别创建:env.js,api.js,request.js三个文件。好了废话不多数直接上代码。env.js代码如下//设置公共访问的url,即环境变量module.exports = { // 开发环境 dev: { baseUrl: 'http://localhost:3000' }, // 测原创 2020-05-12 11:25:45 · 3925 阅读 · 1 评论 -
关于微信小程序获取openid中的一些小问题
在官方文档中获取微信小程序openid的操作方法如下:主要是利用wx.login()和wx.request()函数,代码如下:onLaunch: function() { wx.login({ success: function (res) { if (res.code) { //发起网络请求 wx.request({...原创 2020-05-06 17:34:56 · 958 阅读 · 0 评论