![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开发心得
CloudJay_喵喵喵
这个作者很懒,什么都没留下…
展开
-
VUE 动态组件 Cannot read property ‘$createElement‘ of undefined [问题已解决]
VUE 动态组件 Cannot read property '$createElement' of undefined 问题解决原创 2022-09-13 11:27:07 · 1341 阅读 · 1 评论 -
HbuildX打h5包/web2app包注意事项
#HBuild打h5包/web2app包注意事项1.资源文件必须是相对路径例如vue.config.js2.如果涉及路由,必须是单机支持的类型,例如:vue中,不能是用history,必须用hash模式3.如果用真机调试,必须打基座包4.如果Hbuild编译调试无法认到真机,通常是权限问题,多插拔几次,选到文件传输模式,并启用开发者选项5.认不到真机可以先用基座包安装一次,然后打开基座包的app再插拔usb线,然后就能看到真机选项...原创 2022-06-07 16:33:37 · 474 阅读 · 0 评论 -
git commit到错误分支的处理
在未同步到服务器之前,发现git commit错误可以在保存本地内容的情况下进行修复方法1直接新建一个分支,例如dev_xxxx回到提交错误的分支上,执行#回退到上个版本,将上个版本到回退间的文件保留在暂存区,切换分支后,暂存区文件会丢失git reset --soft HEAD~ 然后切换到dev_xxxx,直接push即可,回到master会发现所有改动都已复原方法2#回退到上个版本git reset HEAD~ --soft#暂存未提交文件git stash#切换(或新建)原创 2021-08-13 15:07:47 · 1657 阅读 · 0 评论 -
vue3 直接获取 app.config.globalProperties.x 的方法
假设我们在main.js中定义了一个全局方法//main.js app.config.globalProperties.$hello = name => { console.log('hello ' + name) }在其他页面中调用该方法//other.jsimport { getCurrentInstance } from "vue";const { appContext } = getCurrentInstance();const callHello = ()原创 2021-07-05 10:02:43 · 6780 阅读 · 2 评论 -
常用 javascript regExp 正则表达式 列表
自己工作中搜集到的一些常用正则表达式,方便开发表单验证逻辑,如有错误,欢迎留言指正!原创 2021-01-26 10:26:10 · 93 阅读 · 0 评论 -
vue文本编辑器 div[contenteditable]
标题写的比较拗口,估计被语文老师看到会被打死vue组件化特性:支持placeholder支持与fastclick插件共存,如果不需要,可以去掉needsclick这个class支持v-model支持readonly支持任意数量个实例支持移动端换行直接上代码:div-editor.vue<template> <pre :id="`divEditor_${id}`" :ref="`divEditor_${id}`" :placeholder="原创 2021-01-05 16:53:23 · 723 阅读 · 0 评论 -
快速扁平化,反扁平化任意嵌套层级JSON
//反扁平化JSON.unflatten = function(data) { "use strict"; if (Object(data) !== data || Array.isArray(data)) return data; var regex = /\.?([^.\[\]]+)|\[(\d+)\]/g, resultholder = {}; for (var p in data) { var cur = result原创 2020-08-06 15:57:20 · 557 阅读 · 0 评论 -
scss border1px 懒人生成器 支持混淆 @mixin
适用于scss的border1px优点使用@media screen方式直接生成class,不占用伪类位置,无需配置loader(当然基本的css-loader和scss-loader还是要的).支持生成任意名字,颜色(#和rgba)和线条类型的mixin,通过@include 使用,方便灵活,生成的css冗余小,scss热更新模式下编译速度快.缺点需要在html中手动加上生成的clas...原创 2019-08-20 17:19:38 · 1483 阅读 · 0 评论 -
支付宝/钉钉小程序 mini-ddui swipe-action 解决滑开时组件内可点击的问题
前言在使用钉钉自己的mini-ddui时,发现swipe-action组件有个坑,swipe-action左右滑动时无法禁止组件本身被点击,导致滑动时如果组件内元素可以点击容易误操作用户体验很差.在查看了官方文档后,发现并没有给出什么解决办法,so…只能把官方库的组件魔改了一下,改的一般,凑合用吧思路1.给swipe-action组件增加一个onSwipeEnd的钩子2.当手放开时判断当...原创 2019-05-08 09:32:31 · 5307 阅读 · 0 评论 -
gulp 保持任意目录结构复制文件
直接上代码了,请根据自己的需要修改const { src, dest, series } = require('gulp')const path = require('path')const build_dir = './dist'const rootPath = 'pdfh5'function copyToDist () { return src(['css/**', 'js/**','index.html']).pipe( dest(function (file) {原创 2020-09-21 16:00:52 · 420 阅读 · 0 评论 -
编程专用字体,在VSCode使用JetBrains Mono
JetBrains 公司 最新出了一个字体 JetBrains Mono,据称是专为改善看代码体验而生,用了一下发现确实还不错,对符号和小写l之类的区分确实有优化但是官方的文档只提到了怎么在IDEs中安装,如果你使用的是vscode之类的其他编辑器,只提供了一个通用的说明,具体怎么安装自己要琢磨了1.下载字体这一步相信大家都没什么问题,下载地址请直接前往官方download下载:传送门2....原创 2020-03-09 14:17:32 · 26357 阅读 · 7 评论 -
Vue3+Vue-Router+Axios+Vite工程化的一些实践
Vite工程化的一些实践px2viewporteslint,prettiervant-ui的按需加载环境变量vue-router+axios 未登录路由拦截跳转登录页html模板增加vite环境变量尾声px2viewportvite自带postcss编译安装postcss-px-to-viewport插件yarn add postcss-px-to-viewport --devpostcss.config.jsmodule.exports = { plugins: { 'postc原创 2021-05-25 09:40:14 · 922 阅读 · 0 评论 -
vue最简单的递归遍历组件
今天同事问我,vue里递归组件要怎么写,随手写了一个小demo.loopItem.vue<template> <div v-if="data"> {{ data.name }} <div style="padding-left:10px" v-if="data.children"> <loop-item v-for="(item, index) in data.children" :key="index" :data="item"原创 2021-04-15 16:26:42 · 1424 阅读 · 0 评论 -
Vue中Neditor实现字数统计相关回调
Vue版本Neditor传送门参考neditor.all.js第15184行,可得知有字数统计事件UE.plugins["wordcount"] = function() { var me = this; me.setOpt("wordCount", true); me.addListener("contentchange", function() { me.fireEvent("wordcount"); }); ...参考32153行,有字数统计超出事件var co原创 2021-02-20 09:35:50 · 331 阅读 · 0 评论 -
ios下contenteditable无法出现光标打字问题修复
需要在该元素上添加以下css.class[contenteditable] { -webkit-user-select: text; user-select: text;}原创 2021-01-22 16:28:45 · 778 阅读 · 0 评论 -
在mac上使用android模拟器通过chrome调试webview内web页面
之前一直使用备用android机在做调试,这次正巧备用机坏了,临时装了个android模拟器来做调试,发现比用真机更方便现在在mac上可以很方便的通过android模拟器来直接调试webview中的web页面,各种应用比如钉钉内的web我们这里就以钉钉内的应用页面来举例原创 2020-11-30 16:51:19 · 2281 阅读 · 0 评论 -
前端开发工作中对于一些非技术问题经验总结
1.按时归档接口文档或在接口内完整注释接口文档很多时候开发流程都是不完美的,比如会存在接口对接只给到部分文档,只能边写边开发,这时候由于后端持续更新文档(doc/swagger/甚至是通过聊天),接口文档会散布的到处都是,这时必须在一个统一的地方归档所有接口的文档,以备不时之需我的做法是在每个项目中,维护一个文件夹/service,所有的接口按页面功能划分为功能名Service.js,并在接口的注释中同步该完整的接口文档当后续有修改,或者项目需交接时,无需另外起文档,直接看代码注释就可以,十分之方便原创 2020-09-23 17:46:39 · 414 阅读 · 0 评论 -
修复swiper.js抖动问题
解决方案关闭freeModeMomentumBouncevar mySwiper = new Swiper('.swiper-container',{freeMode : true,freeModeMomentumBounce : false,})原创 2020-07-06 15:46:50 · 1453 阅读 · 0 评论 -
各种关闭eslint方法总结
1、package.json关闭eslint直接注释掉package.json文件中eslint的配置 "eslintConfig": { "root": true,////此项是用来告诉eslint找当前配置文件不能往父级查找 "env": { "node": true//此项指定环境的全局变量,下面的配置指定为node环境 }, "extends": [// 此项是用来配置vue.js风格,就是说写代码的时候要规范的写,如果你使用vs-code我原创 2020-06-29 17:18:23 · 69265 阅读 · 7 评论 -
IOS中使用Date格式化日期时正确操作
原因是IOS的Date对象只接受/作为日期的分隔符,例如:new Date('2020.2.2').getTime() //ios中NaNnew Date('2020/2/2').getTime() //ios中正常返回值比较好的解决办法是直接使用类库来代替原生的Date对象,比如dayjs等,如果对应用大小有严格限制,那只能在赋予对象参数的时候多注意一些了...原创 2020-03-04 14:39:50 · 480 阅读 · 0 评论 -
移动端 border-radius 绘制圆点不够圆 如何解决
在做项目中,经常会遇到用css绘制像素小圆点的需求,如下代码.dotted{ width:4px; height:4px; border-radius:50%; background:red;}在一般情况下,这种代码是没有问题的,但是如果你使用了px2rem之类的插件,就会发现在移动端上的圆点有的大,有的小.十分的难看个人猜测原因是因为转换工具转出来的单位都是带小数点的,在css...原创 2020-02-14 12:41:25 · 3009 阅读 · 0 评论 -
修复钉钉小程序 iconfont在android客户端无法正常显示
文章目录问题原因解决方案1.使用base64内联字体文件2.使用https路径的字体文件问题之前发过一篇教程:如何在钉钉小程序使用iconfont在项目开发完成后,测试时,发现在android上iconfont不会生效原因在请教了钉钉的大佬后,得出原因,低版本android他不支持woff2格式的字体,必须要使用woff格式字体,由于从默认iconfont网站上下载来的字体,woff2排...原创 2019-10-18 16:12:45 · 3619 阅读 · 0 评论 -
钉钉小程序 H5应用开发 实用工具及常用技巧集合
文章目录获取钉钉版本,是否在钉钉环境下,移动端还是PC任意url在钉钉pc侧边栏打开隐藏右上角按钮失效问题的处理移动端网页真机调试,RC版钉钉下载获取钉钉版本,是否在钉钉环境下,移动端还是PC// 19年的官方文档里已经没有了,但是dd.pc,dd.ios和dd.android还是可以用的,后续稳定性不保证window.ddUA = { isPc:dd.pc,isIos: dd.ios, i...原创 2019-08-29 15:27:52 · 14432 阅读 · 4 评论 -
windows环境下非全局安装使用各种NPM包的指令方法
windows环境下非全局安装使用各种NPM包或手脚架的指令方法有时候我们需要在CMD下执行一些常用手脚架的方法,例如ng,webpack,vue等等最基础的做法是直接全局安装,例如npm install vue-cli -g但这种做法有一个缺点,会在全局变量中绑定指定的vue版本,使全局变量和项目环境产生了耦合那有没有更好的方法呢?答案是有的可以通过npm start来实现直接使用当...原创 2018-11-14 17:36:14 · 914 阅读 · 1 评论 -
全平台通用中文字体设置 font-family css 2019
兼容windows,macbody{ font-family: Georgia, "Times New Roman", "Microsoft YaHei", 微软雅黑, STXihei, 华文细黑, serif;}原创 2019-09-11 17:29:22 · 3288 阅读 · 0 评论 -
更改eslint报错配置
1、关闭eslint直接注释掉package.json文件中eslint的配置就可以了(以下是vue-cli的默认配置) "eslintConfig": { "root": true,////此项是用来告诉eslint找当前配置文件不能往父级查找 "env": { "node": true//此项指定环境的全局变量,下面的配置指转载 2019-10-18 16:31:44 · 570 阅读 · 0 评论 -
Vue CLI 3.0 + momentjs + lodash 打包时优化
在vue-cli 2.0时代,webpack的配置是有独立文件的,包含在build目录下,修改也比较方便到vue-cli 3.0后,webpack配置被整合到vue-cli的配置中了,需要配置一些打包插件比较麻烦了,比如优化momentjs压缩包,使用webpack-bundle-analyzer等…研究后发现vue-cli 3.0使用了chainWebpack来支持额外的插件配置我们这里使...原创 2019-02-26 17:40:41 · 5357 阅读 · 5 评论 -
钉钉小程序 E应用开发 实用小技巧 (不定时更新)
使用iconfontE应用使用lodash发版时清除缓存钉钉扫码预览编译失败mini-ddui 文档原创 2019-02-26 16:00:17 · 9911 阅读 · 3 评论 -
Yarn设置国内镜像源
这个设置偶尔用一次,要用时候又老是找不到,干脆自己记一下一共就2行代码yarn config set registry https://registry.npm.taobao.org --globalyarn config set disturl https://npm.taobao.org/dist --global完事!...原创 2019-01-16 17:13:07 · 32905 阅读 · 1 评论 -
关于前端发布生产包时清理浏览器缓存的一些总结
前端发版时清理浏览器缓存在前端,总有这样那样的原因导致资源被缓存,大部分情况下,我们是希望资源被缓存的,比如js,css,png等等.这样对于加速网页打开有很大的性能提升.但是,部分情况下我们不希望前端资源被缓存,比如前后端分离的应用,发版时,如何清除掉老的html缓存就是一件让人非常头大的事情对于这种情况,我结合自己实际的项目开发经验以及网上查看到的资料做了以下的总结:浏览器识别缓存的原...原创 2019-01-16 13:17:33 · 9957 阅读 · 1 评论 -
Angular在IE10下报错 "Object.setPrototypeOf"
Angular在IE10下报错 "Object.setPrototypeOf"找到Angular根目录下polyfills.ts文件添加如下代码,加在import 'core-js/...';前面,搞定!(function() { Object.setPrototypeOf = Object.setPrototypeOf || ({__proto__: []} instanceof Ar...原创 2018-11-12 16:47:12 · 995 阅读 · 0 评论 -
安装 node-sass 姿势
项目下添加一个 .npmrc 文件:sass_binary_site=https://npm.taobao.org/mirrors/node-sass/phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/electron_mirror=https://npm.taobao.org/mirrors/electron/regis...原创 2018-08-14 18:01:42 · 284 阅读 · 0 评论 -
Vue 中快速实现div滚动监控
草稿原创 2018-07-31 10:09:41 · 5977 阅读 · 0 评论 -
Vue+Echarts 异步载入echarts.js类库
Vue项目中的Echarts实现异步加载在项目中,首屏用到了echarts插件,类库精简,Gzip打包后也有100多K,如果在index.html里就开始加载echarts.js,也会造成1秒左右的阻塞时间然而图表本身依赖ajax异步获取的数据,展示时需要时间的,没有必要在页面刚进入时候就把echarts加载玩不所以最好的方式是在Vue中实现echarts的异步载入使用,哪里要用到哪里...原创 2018-06-27 18:18:18 · 1971 阅读 · 2 评论 -
vue cli 3.0 使用 sass
直接上代码yarn add sass sass-loader --dev原创 2020-09-28 14:09:54 · 138 阅读 · 0 评论 -
js 数组转JSON树
var nodes = [ {"id":2,"title":"第一级1","parentid":0}, {"id":3,"title":"第二级1","parentid":2}, {"id":4,"title":"第二级2","parentid":转载 2019-04-03 17:01:13 · 724 阅读 · 0 评论 -
VSCode + Vue + TypeScript 格式化后完美通过lint检查
打开VSCode插件中心,安装Prettier - Code formatter和Prettier-Standard - JavaScript formatter选择首选项->设置,搜prettier勾选Prettier: Single Quote 设置为true勾选Prettier: Jsx Single Quote 设置为true勾选Prettier: Semi 设置为true...原创 2019-09-03 17:06:01 · 1344 阅读 · 0 评论 -
Vue中div contenteditable 的光标定位
在Vue做项目时,做了一个div[contenteditable=true]的组件作为文本输入框在非手动输入值后,光标会丢失,经测试以下这段代码可用,直接将光标定位到最后function keepLastIndex(obj) { console.log(obj) console.log(window.getSelection) consol...原创 2018-05-10 10:29:10 · 18292 阅读 · 3 评论 -
Vue 创建基于数组的动态表单
在开发vue项目中,有时会遇到需要增删的列表表单,比如添加一堆人员信息,数据格式如下postData=[formData1,formData2,formData3....]这时可以直接创建一个基于数组的form对象,这样增减操作也可以基于数组的push和slice方法来实现export default{ const emptyPerson={ name:'', nameEn:'...原创 2019-08-29 16:42:00 · 1541 阅读 · 0 评论 -
任意文件中引用vue当前实例
在实际开发Vue项目时,我们有时需要在某个独立的js中直接引用vue实例原创 2019-08-29 16:28:50 · 607 阅读 · 0 评论