- 博客(37)
- 收藏
- 关注
原创 vue项目yarn初始化项目报错error D:\xxx\node_modules\node-sass;终极解决方案
最完美的解决了初始化项目node和node-sass冲突报错,导致初始化项目失败的问题error D:\xxx\xxx\node_modules\node-sass: Command failed.Exit code: 1Command: node scripts/build.js
2022-10-14 19:53:51
3557
5
原创 让div也可以获得keydown事件
最近遇到问题就是想监听某个div的keydown事件;但是div没有keydown事件,只有document和input才有keydown事件那么如何让div也有keydown事件呢?1、在div上添加tabindex属性在这里插入代码片<div id="trapezoid-box" tabindex="0">tabindex=负值 (通常是tabindex=“-1”),表示元素是可聚焦的,但是不能通过键盘导航来访问到该元素,用JS做页面小组件内部键盘导航的时候非常有用。tab
2022-05-13 17:20:12
1615
原创 vue2的$emit在vue3版本版本的使用方法
公司开始了vue3重构vue2项目的任务,中间遇到过一个问题困扰了我很久那就是今天的主角$emit;调用父组件方法;在vue2中很简单直接// Parent.vue 响应<template> <child @ParentClick="ParentClick"></child></template><script> export default { methods: { ParentClick(){ cons
2022-03-11 17:44:22
3368
原创 百度经典JavaScript面试题代码输出(作用域链)
百度经典面试题下面代码输出结果是什么?function bar() { console.log(myName)}function foo() { var myName = " 百度 " bar()}var myName = " 腾讯"foo()答案是:腾讯这里考察了JavaScript的作用域链的知识1、函数执行上下文是函数声明的上下文,不是执行时刻的上下文,因此br()函数执行的变量myName 上下文是腾讯,而不是执行的foo()函数内部的变量2、foo
2021-10-16 18:00:49
230
原创 JavaScript中typeof null为什么结果是object
JavaScript有六种基础数据类型string、Boolean、number、undefined、null、symbol那么我们分别typeof判断一下结果如下:var barconsole.log(typeof bar) //undefinedbar = 12 console.log(typeof bar) //numberbar = " 极客时间 "console.log(typeof bar)//stringbar = trueconsole.log(typeof bar)
2021-10-16 17:54:02
301
原创 vue的v-model的双向数据绑定原理
vue的双向数据绑定是一个很有意思的特性;知道其原理方能运用自如 <div id="demo"> <h1>双向绑定机制</h1> <!--表单控件绑定--> <input type="text" v-model="foo"> <!--自定义事件--> <comp v-model="foo"></comp> </div&
2021-09-08 16:01:45
400
原创 算法:JavaScript处理极限数字相加求和的问题
问题:JavaScript的数字超过2的52次方的极限值就会相加就会出问题;如何解决?例如:999999999999999999999+88888888888888888888888888```javascript```javascriptfunction add(str1, str2) { const arr1 = str1.split('') const arr2 = str2.split('') const res = [] let more = 0
2021-09-07 15:40:51
451
原创 vue的$nexttick原理
vue有一个$nexttick方法,有时候不知道怎么用它如果知道其运行原理,使用起来则会得心应手啦来吧展示宝贝!先看官方介绍第一原理:理解$nexttick的原理就要提前理解js事件循环宏任务和微任务的原理js执行宏任务时候遇到微任务(promise)或者settimeout等的时候就会把微任务放到下一轮执行而不是立刻执行,当前宏任务执行完之后再执行挂起的微任务,之后再执行下一轮宏任务;这是浏览器执行的基础;$nexttick就类似于被挂起微任务或者挂到下一轮宏任务的settimeout
2021-08-05 11:24:51
2745
原创 vue父子组件传值的方法汇总
父子组件传值方法分为三种(父子、多层父子、非关系组件)一、父子组件通讯:纯粹的父子组件传值方法有如下方法1、props和emit(父子组件通讯)2、ref和emit(父子组件通讯)2、ref和emit(父子组件通讯)2、ref和refs(父子组件通讯)3、parents和parents和parents和children(父子组件通讯)二、多层父子:父子孙子等多层组件4、attrs和attrs和attrs和listeners(多层父子组件传值)5、provide和inject(多层父子组件传值)
2021-06-24 11:16:50
307
原创 ES6中promise解决了什么问题?
面试题经常会问一个问题就是ES6里promise解决了什么问题大多数回答是,解决了回调地狱问题(不完美的回答);其实这是很表面的回答不够有深度;怎么才能完美解答问题呢解答:1、promise本质上是给出了一种异步任务同步写法的解决方案,然后才是解决回调地狱问题;2、其中还会涉及微任务宏任务问题;先执行宏任务,再执行微任务3、anysc await 其实本质是promise.then的执行结果;但是其更完美的体现了异步任务同步执行的形式小宝贝们这个回答才会无懈可击...
2021-06-24 10:22:53
516
1
原创 最简单的方法:JS去除url中某个参数--正则表达式
问题:昨天一个需求很特别,APP分享的h5链接不能有某个参数**甩锅大战:**1、我说:APP开发前端掉的都是你的方法,你统一去掉不就行了,省的我们多个地方进行处理;APP开发:竟然说他是直接掉的原生去不掉,让前端自己去掉;气的我一口老血吐他一身。我心想:都是开发想甩锅直说啊;没办法要怪就怪自己不懂APP开发吧;忍气吞声找解决方法;**解决方法**经过一番查找发现项目里面有十多个地方调用了APP注入的分享方法;必须要找一个最简单的方法才可以;发现连个方法1、先把url转化为json对象然后删
2021-06-07 15:07:24
4497
1
原创 面试题什么是浏览器缓存
1、最近遇到很多面试者答不上来什么是浏览器缓存这道题;很尴尬2、其实浏览器缓存很简单,我来讲一下 我来详细讲一下1、浏览器缓存是设置在ajax请求头的;2、浏览器缓存大部分都是后端开发设置的,前端开发设置的不多;前端面试总是讲这个问题,是考验一下前端开发对浏览器原理的理解3、浏览器缓存分为两个;强...
2021-05-17 11:05:59
905
原创 模仿ES6的promise手写一个自己的promise
class Mypromise {constructor(handle) {this.status = ‘pedding’;//状态this.value = undefined;//结果this.resolveFn = [];this.rejectFn = [];handle(this._resolve.bind(this), this._reject.bind(this))}_resolve(val) {this.status = ‘fulfilled’;this.value = va
2021-05-06 17:18:40
179
原创 模仿vue手写一个mvvm框架
//wather和依赖收集器 不依赖key值生成对应的dep//利用ES6的Proxy来 get收集依赖;set发布class MyVue{constructor(options){this.options=options;this.options=options; this.options=options;this.data=options.data;this.observe(this.KaTeX parse error: Expected 'EOF', got '}' a
2021-05-06 17:16:01
206
原创 json对象push进数组后,改变改对象数组里的json也改变了,阻止继承的方法
json对象push进数组后,改变改对象数组里的json也改变了;是由于继承问题导致的;现在有如下方法禁止继承第一种解决方法,使用Object.assign重新声明对象,就不会继承let addInsureDate=Object.assign({},this.Insures.Insure);第二种方法:JSON.parse(JSON.stringify(this.Insures.Insure))对象,也可以禁止继承let addInsureDate=JSON.parse(JSON.stringi
2020-12-14 10:24:53
1056
原创 jenkins自动化构建前端vue项目最佳配置教程gitlab
前端vue项目每次构建完都要ftp手动传到服务器才生效,过程很麻烦现在有了jenkins一点点击完成所有操作;妈妈再也不用担心我不会写代码了;开心项目情况1、代码在gitlab仓库里2、vue项目现在开始行动吧;来吧小宝贝1,新建试图(如果已经有视图就不用新建这一步啦)2、点击进去新建的项目之后点击新建任务3、接下来最重要的来了;老中医独家秘方,不需要很多配置直接写入命令即可4、添加gitlab的克隆代码的链接、添加token(允许jenkins访问代码服务器的账号密码)5、
2020-11-10 18:51:49
728
原创 vue项目对象声明没有赋值的情况下,改变对象属性页面不更新的解决方案
问题描述:vue项目第一次加载页面后端返回数据改变对象值后页面没有更新;但是再次点击页面报价就可以更新了在开始声明了变量,但是没有赋值后端返回数据后给对象的price属性值改变了;但是页面却没有更新根本原因:变量声明没有设置初始值导致vue监听不到;再次点击页面有无社保按钮报价就可以更新是因为强制更新了页面,就监听到了解决方案一:this.$forceUpdate();赋值之后强制更新页面;缺点:该方法影响性能;解决方案二:声明变量的时候设置一个初始值,vue就会监听改对象的变化,完美解决问题
2020-10-10 16:16:27
1815
2
原创 页面设置了禁止缩放,input获取焦点页面还是放大的解决方法
一、问题描述周六加班的加班狗,一直在解决这个问题;vue项目index.html设置了禁止缩放 <!-- 设置宽度为设备的宽度,默认不缩放,不允许用户缩放(即禁止缩放),最大缩放比例,最小缩放比例, 在网页加载时隐藏地址栏与导航栏(ios7.1新增)。 --> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, maximum-scale=1
2020-09-12 16:55:43
1418
原创 各个浏览器a标签href下载文件链接长度过长,导致下载失败解决方案
一、问题:开发中遇到下载exel文档;后端小哥返回来base64位的exel文件;刚开始文件比较小;本人使用创建a标签给href纸箱base64位文件var a = document.createElement('a'); a.download = fileName; var blobExel = e.target.result;//base64位文件a.setAttribute('href',URL.createObjectURL(blobExel));该方法在遇到下载文
2020-09-04 11:25:34
4102
3
原创 vue的axios请求设置同步请求利用Promise设置.then()同步请求
项目开发中遇到一个问题其他请求需要在login接口请求成功设置cookie之后同步执行,不能异步执行async await 这种方式也没搞定经过一番翻云覆雨查找,找到利用Promise.then()方法实现同步请求声明函数export let feicheLogin = () => {return new Promise((resolve, reject) => {let query = { userId: Loginres.userId }login(query).then(
2020-08-11 18:11:32
12822
原创 chrom后端设置cookie失败跨域问题报错the set-cookie had to have been set with “sameSite=None“ to enable cross-si
vue项目运行登录后,后端设置了cookie;但是我是本地起得项目所以现在一直报错登录过期问题;一、后端设置的set-cookie黄色警告报错the set-cookie had to have been set with “sameSite=None” to enable cross-site usageSamesite有三个值,None, Lax,Strict.这个参数是防止跨站攻击用的,因为测试环境,所以最方便就是跨站调试了。刚开始设置cookie 的Domain无效后来经过一番翻云
2020-08-06 15:08:33
5159
1
原创 html短信发送的方法
html短信发送的方法// Without Contact Number< a href=" ">Text Message</ a>// With Contact Number< a href=“sms:1234567890;?&body=message”>Text Message</ a>// Works on both Android and iOS
2020-07-07 10:36:48
1253
原创 gulp构建遇到的坑
新项目流程1、安装npm install --global gulp-cli2、npm init生成package.json依赖包安装3、npm install --save-dev gulp安装gulp4、根目录下创建gulpfile.js 写gulp方法就可以gulp了第一坑,版本过高导致报错gulp.start is a not function原因:gulp4.0以上版本升级比较大,会导致低版本的方法报错解决方法:下载低版本的gulp 命令npm install -g gulp@3.
2020-06-16 09:38:48
931
原创 vue项目vant框架的滚动导航不生效原因
我引入vant组件使用滚动导航,不生效,其他导航都没问题;经过排查发现是因为css样式问题;滚动导航的父盒子样式不能有overflow-y: auto;这个样式会导致滚动导航不生效引入组件import Vue from ‘vue’;import { Tab, Tabs } from ‘vant’;Vue.use(Tab);Vue.use(Tabs);之后运行,导航可以点击但是页面不会跟着滚动,也不会吸顶直接就滚动隐藏了导航栏;如下图经过一番排查原来是在APP.vue里的app容器样式里加了
2020-05-11 15:40:22
7124
原创 vue项目模块导入报错
vue项目模块导出报错新建文件后导出文件const BASEURL = “https://mtest.xxxxx.com.cn/micro-plat/”const LOCALURL = “http://localhost:8080”const AXIOSURL={getProductInfo: BASEURL+‘commonData/productInfo.do’ //商城首页所有信息}module.exports = AXIOSURL//老写法会报错其他文件引用 import AXIO
2020-05-09 18:08:35
2793
原创 vue项目为什么有的有config目录有的是vue.config.js
vue-cli版本是2.0左右的就会有webpack的config目录vue-cli版本是3.0以上的就会有vue.config.js没有config目录升级项目先npm install webpack -g升级webpack然后 webpack -v查看版本如果报错One CLI for webpack must be installed. These are recommended c...
2020-04-28 11:36:18
6910
原创 ADM处理器开发flutter;安装安卓虚拟机遇到的坑*
**ADM处理器开发flutter;安装安卓虚拟机遇到的坑**一/首先你需要开启虚拟化,需要进入biso设置svm模式,将其开启;开机进入biso,设置是svm可以用二/然后打开hyper-v,这个要在启用或关闭windows功能中设置(在控制面板中搜索)下载hyper-v三/最后就是as软件里面设置了,需要下载合适的镜像(x86的不适用amd的处理器,需要下载armeabi-v7a...
2019-11-24 17:11:10
1019
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人