自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 关于小程序,公众号,H5以及APP的简单认识

小程序与APP的区别原生APP直接运行在操作系统的单独进程中,所有的原生组件可以直接调用 GPU 进行渲染;微信只能运行在微信的进程中,只能通过 WebView 进行渲染。微信小程序不需要在设备上下载安装,可以通过小程序码等方式通过微信直接打开;App是专门针对某一类移动设备产生的,它们都是被直接安装到手机设备里,属于独立的应用,从推广成本来说,微信小程序的推广成本和公众号类似,要远远低于a...

2020-02-26 14:08:27 603

原创 函数的防抖和节流

一. 前言函数的防抖和节流是优化高频率执行js代码的一种手段,js中的一些事件如浏览器的resize,scroll,鼠标的mousemove,input的keypress等事件在触发时,会不断的调用绑定到事件上的回调函数,这样极大的浪费了前端资源,降低性能,为了优化体验,需要对这类现象进行调用次数的限制。二. 常用使用场景函数防抖的使用场景:高频连续的事件,只需要触发一次回调的场景inp...

2020-02-26 11:22:36 152

原创 js的事件循环机制Event Loop

一. 前言虽然js运行在浏览器中是单线程的,但是浏览器又是事件驱动 Event Driven的,浏览器中的很多行为都是异步的,会创建事件并放入执行队列中。浏览器通过事件循环 Event Loop来实现异步回调的。由浏览器新开一个线程去完成,一个浏览器至少实现三个常驻线程:js引擎线程GUI渲染线程事件触发线程CPU、进程、线程的关系计算机的核心就是:CPU,它承担了所有的计算任务...

2020-02-26 11:15:45 160 1

原创 数组的几个骚操作

一. 前言此篇文档主要从数组API方面记录一些骚操作二. 代码实现2.1 扁平化数组Array.flat(n)是ES10扁平数组的API,n代表维度,n为infinity时,代表无限大维度console.log([1, 2, 3, [4, 5]].flat(2)); // [1, 2, 3, 4, 5]console.log([1, [2, 3, [4, 5]]].flat(3)); ...

2020-02-26 11:14:36 193

原创 javascript原生从初级到高级汇总

一. 前言js知识的重要性不言而喻,一直暗戳戳想要系统的学习汇总一下js的相关知识,但是一直没有定下心来付诸行动,今天刚好看见一篇不错的文章,所以决定通过这篇文章记录一下学习成果。二. 函数部分函数的定义方式?参考链接:mdn function(1)函数声明function myfun() {...}(2)函数表达式var myFunction = function sort...

2020-02-26 11:13:32 241

原创 call-apply-bind浅析

一. 前言此篇文档主要用来对call,apply以及bind的学习成果进行汇总。bind是返回对应函数,便于稍后调用;call,apply则是立即调用。二. 先来学习一下call,apply在JavaScript中,call以及apply都是为了改变某个函数运行时的上下文(context),换句话说就是为了改变函数内部this的指向而存在的。JavaScript的一大特点就是,函数存在定...

2020-02-26 11:12:33 161

原创 模板引擎

一. 前言什么是模板引擎?模板引擎是一个页面模板根据一定的规则生成html的工具。PHP是最早的模板引擎。模板引擎的功能就是将页面模板和要显示的数据结合起来生成html页面,它既可以运行再服务器端也可以运行再客户端,大多数时候是由服务器端直接解析成html,完成后再传递给客户端。在MVC架构中,模板引擎引擎包含在服务器端,控制器得到用户请求后,从模型中获取数据,调用模板引擎。模板引擎以数据...

2020-02-26 11:10:33 211

原创 安装配置MongoDB数据库

一. 前言本片文档主要用来汇总安装MongoDB数据库的操作流程。1. 下载安装包MongoDB官网下载地址注意:(1)install mongoDB compass(它是一个图形界面管理工具)选择不勾选,因为可能需要更久的安装时间。(2)安装完成后,需要在C:\Program Files\MongoDB\Server查看是否安装成功。2. 配置创建E:\mongodb\dat...

2020-02-26 11:09:03 378

原创 手摸收来搭建express项目

一. 前言此篇文档主要用来汇总第一次手摸手尝试搭建Express项目的心得记录。二. 创建express项目使用express-generator应用生成器,模板选用Pug(Jade是它不久前的曾用名),它是最流行的Express/Javascript模板语言之一。mkdir express-locallibrary-tutorial // 新建文件夹cd express-localli...

2020-02-26 11:07:39 165

原创 初识什么是node

一. 前言本篇文档主要用来汇总自己从入门学习Node.js开始的学习总结。好记性不如烂笔头,以文档的形式记录下来,以便今后拿来即用。真香~二. 基础概念1. 什么是node? 什么是Express?什么是node?Node(正式名称Node.js)是一个开源的,跨平台的运行时环境,有了它,开发人员可以使用javascript创建各种服务器端工具和应用程序。此运行时主要用于浏览器上下文之...

2020-02-26 11:03:16 1766

原创 angular预览PDF总结

angular移动端预览PDF经验记录需求以及解决办法:单个页面可以同时预览多份PDF,这样就无法使用window.open('https:www.wxw.pdf','_self');的方式去利用自带浏览器去解析PDF。因为原因(1),所以采用iframe去嵌入解析多个PDF链接。但是又发现,安卓手机端无法直接加载显示PDF,会强制提醒用户下载后再查看。因为方式(1)(2)都被PAS...

2019-10-22 14:38:35 3749

原创 wepy+vant 微信小程序开发总结

前言本次小程序开发选择使用 wepy作为小程序第三方框架,在UI组件库方面选择的是有赞的移动端组件库Vant去快速搭建小程序应用。这次小程序功能需求并不是特别复杂,目前亲测功能基本满足。这段时间刚好工作空闲期,决定将这次开发的坑以及重要点记录下来,以备今后查阅。全局安装wePy模块包npm install wepy-cli -g代码编辑用的一直还是VsCode,在VsCode编辑...

2019-10-11 10:58:30 1733 1

原创 钉钉小程序

1. setData 改变对应的this.data的值注意:不要直接修改this.data对应的数据。在dd.httpRequest({})中无法获取this对象,需要在请求外面定义变量去过渡钉钉变量this.setData({ 'array[0]': 1, 'obj.x':2,});2. dataset 在组件中可以定义数据,这些数据将会通过事件传递给逻辑层。&lt...

2019-10-11 10:52:20 986

原创 git相关操作记录

1. git切换分支注意事项:git 切换分支前,需要先 add 将本地的所做的更改暂存一下,切换分支便不会失掉本地的更改。如果 git checkout 切换分支,找不到别人新建的分支,则需要先将远程的分支 git pull下来,要不然分支只是在远程,自己本地看不见的。2. git pull冲突后如何在vscode编辑器中显示冲突内容?用惯了命令行黑窗口去拉代码,暂存提交代码...

2019-10-11 10:49:34 141

原创 关于vuex的简单认识

1. Vue是什么?Vuex 是一个专门为 Vue.js 应用程序开发的状态管理模式.它 采用集中式存储管理应用的所有组件的状态, 并以相应的规则保证状态以一种可预测的方式发生变化.2. 什么是状态管理模式?状态管理应用分以下 3 个部分:state: 驱动应用的数据源;view: 以声明方式将 state 映射到视图;actions: 响应在 view 上用户输入导致的状态变化....

2019-10-11 10:46:22 155

原创 ES6数组的拓展方法

Array.from():从一个伪数组或可迭代对象中创建一个新的浅拷贝的数组实例伪数组对象:拥有一个length属性和若干索引属性的对象可迭代对象:Map、Set(1)字符串Array.from('apple') // ["a", "p", "p", "l", "e"](2)Mapconst map = new Map().set('name','wxw'); // Ma...

2019-10-11 10:42:42 126

原创 收集的好用的npm包

1、记录一个可以快速删除node_moduls的npm包安装npm install rimraf --save使用方法rimraf node_modules2、node版本管理器nvm安装:https://github.com/coreybutler/nvm-windows/releases常见命名:nvm list // 查看本地安装的node版本nvm use 8...

2019-10-11 10:39:26 729

原创 详解NaN特性

javascript有7种内置对象,7种内置对象又分两种:基本类型、对象(1)基本类型:null、undefined、boolean、string、number、symbol(2)对象:Object,引用类型,所以会涉及到浅拷贝和深拷贝的问题1. typeOf判断类型typeOf对于基本类型,除了NaN之外,都能显示正确的类型。typeOf 1 // 'num'typeOf '1...

2019-10-11 10:16:11 891

原创 angular6路由复用策略

一. 什么是路由复用? 为什么使用路由复用?路由在执行过程中对组件无状态操作,即路由在离退时组件状态会一并删除,再次进入该页面会重新进入ngOnInit中,大部分情况这样是合理的。但是在移动端这边,一般都是有查询列表页,用户可以进行下拉触底加载更多数据,这时候,当用户点击某项进入详情页后,再次跳回列表页时,会发现列表页重新刷新了一遍,用户上次的访问滚动记录已经不在了…这时候肯定会被提出需求:记...

2019-10-11 10:08:47 989

原创 angular6路由守卫详解

一. 什么是路由守卫?什么情况下使用路由守卫?定义:在进入或离开路由时进行一定条件的判断和处理。应用场景:用户可能无权导航到目标组件用户得先登录(认证)在显示目标组件前,你可能得先获取某些数据在离开组件前,你可能要先保存修改你可能要询问用户:你是否要放弃本次更改,而不用保存它们?路由守卫返回一个布尔值,来控制路由器的跳转行为返回 true,导航过程会继续...

2019-10-11 10:06:29 1404

原创 module简单认识

export 以及export defalut有什么区别?举个栗子看一看!!!方式一:export default -> 对应的import语句不需要使用花括号公共工具文件 :util.jsimport { lazyAMapApiLoaderInstance } from 'vue-amap';let position = () => { return new Pr...

2019-10-11 10:01:28 124

原创 Eslint+prettier统一前端代码风格

行尾要不要加分号?用tab还是空格?单引号还是双引号?如何规范团队代码风格?本文主要介绍使用EsLint+Prettier帮助我们检查Javascript编程时的语法错误,统一代码风格。1、先来讲讲Eslint的基础知识Eslint安装// 本地安装npm install eslint --save-dev// 在项目目录下,运行以下代码将会产生一个.eslintrc的配置文件...

2019-10-11 09:59:21 353

原创 WePy小程序实践总结干货

如何在page页面,组件以及封装的js复用工具类文件获取app globalData中存储的全局变量以及方法?page: this.$parent.globalData.applyId组件:this.root.root.root.parent.globalData.applyIdjs工具类文件·:wepy.$instance.globalData.tokenIdpage使用app...

2019-10-11 09:52:13 247

原创 WePy小程序问题汇总

框架:Wepy小程序框架 + Vant移动端组件库问题1:项目测试中发现若干页面样式在一些华为手机上出现了适配问题,页面底部内容被虚拟键盘遮挡,无法显示完全。产生原因:因为虚拟键盘位于界面的可视区域,并且占据了页面下方一定的高度。解决方法:app.wpy 页面获取设备品牌,设置为全局变量。获取系统信息API参考链接 // 获取手机系统信息 wx.getSyst...

2019-10-11 09:46:55 196

原创 关于Set对象的学习

关于Set对象的一些方法,自己本身也没有做过专门的研究汇总,所以,只是知道它是数组去重的好选择,自己平时在项目中也没有用过这个方法…趁着闲暇,搞一下,万一以后有用,也可以拿来即用!专业参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set1、数组快速去重经典例子...

2019-10-11 09:41:22 107

原创 forEach到底可以改变原数组吗

这几天在平时练习的时候,发现一个很匪夷所思的问题!就是我的印象中,forEach是可以改变原数组的呀!!!???,but !为什么现在这么简单的字符串数字组成的数组,咋就永远改不了原数组那???咋就这么费劲的吗???后来,在各种尝试无果后,硬是逼着我,无奈的打开了项目,我就想看看平时我都用的这么理所当然可以改变的forEach到底咋就可以改变了!后来,仔细一看,我一般在项目中数组操作...

2019-10-11 09:37:13 17672 8

原创 async/await的学习记录

在项目中,我们经常会遇到这样的需求:第二个接口请求的参数必须要等到第一个接口返回值回来,才能去请求第二个接口。也就是说:第二个函数的参数是第一个函数的返回值!通常遇到这种情况,我们都会想到使用Promise去处理这样的异步需求。因为之前知道除Promise外还有async/await,但是一直没有研究过,今天就来研究一下!async基础知识参考链接:https://juejin.im...

2019-10-11 09:35:08 228

原创 问题记录

关于img图片展示问题的解决办法:把图片放在src同级的static文件夹下。把图片放在cdn上,把网络地址存在imgUrl里,然后直接去展示。图片放在assets文件夹,然后在data里面require进图片,然后去展示即可img: require("../assets/images/guide-bg1.png")...

2019-10-10 10:04:39 194

原创 vue-列表过渡

列表交错过渡使用场景:通过Input 搜索关键字后,下方结果集带有自上而下展开与自下而上收缩的动画效果。列表过渡,使用<transition-group> 组件 ,可以通过tag 特性更换为指定的真实元素。内部元素总是需要 提供唯一的 key 属性值安装 velocity-animate 安装包<transition-group class= "m...

2019-10-10 10:02:38 520

原创 过渡&&动画总结

一. vue的过渡与动画Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。过渡效果的应用可以通过不同方式实现:在CSS过渡和动画中自动应用class在过渡钩子函数中使用JavaScript直接操作dom配合第三方css动画库:Animate.css 或者第三方javascript动画库:Velocity上面三种方式其实主要就是两种:一个是利用CSS过渡或者...

2019-10-10 10:01:27 191

原创 vuex使用方法简述

下载vuexnpm install vuex --savemodule分模块开发将整个store分割成模块module,每个模块有自己的state,mutation,getter,action。新建store目录,在主文件index.js引入vue,vuex。store目录结构>store >modules -app.js -user.js ...

2019-10-10 09:58:14 218

原创 vue组件间传值

一. 子组件向父组件传值 - $emit 发射事件子组件$emit发射事件A this.$emit(event,...argument); /* * event: 要触发的事件 * argument: 传给父组件的参数 */ 例子:this.$emit('emitEvent',data,'lalala');父组件通过事件名A接收<p...

2019-10-10 09:56:42 106

原创 vue路由跳转权限拦截判断

1. 全局钩子函数:beforeEach函数有三个参数:to:router即将进入的路由对象from:当前导航即将离开的路由next:Function,进行管道中的一个钩子,如果执行完了,则导航的状态就是 confirmed (确认的);否则为false,终止导航。afterEach函数不用传next( )函数。Vue.beforeEach(function(to,fo...

2019-10-10 09:48:16 496

原创 vue过滤器filter

1. 过滤器filter可使用在花括号{{ } 和v-bind表达式两个地方;放在管道 |的后面。<!-- 在双花括号中 -->{{ message | capitalize }}<!-- 在 `v-bind` 中 --><div v-bind:id="rawId | formatId"></div>2. 过滤器表达式总是接收之前表达式...

2019-10-10 09:47:00 456 1

原创 vue-router基础知识

1. 动态路由匹配路径参数以 : 标记,参数值会被设置到this.$route.params。使用路由参数,例如:‘/user/foo’到‘/user/bar’,组件实例会被复用,需要watch监听$route对象。to.name 匹配的是路由的name值。watch: { '$route' (to, from) { if (to.name ...

2019-10-10 09:45:22 63

原创 vue-cli脚手架安装

1. vue-cli 全局安装npm install -g vue-cli2. 初始化项目vue init webpack 文件名3. 启动项目npm start链接:https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create

2019-10-10 09:43:48 68

原创 element-ui

1. 表格自定义radio单选框label=“scope.$index”:为label变量动态赋值当前行的index值;否则会触发所有radio的选中。radio选择框后面动态生成的index值,可以使用添加 $nbsp; 清除。<el-table-column align="center" > <template slot-scope="scope" &g...

2019-10-10 09:38:02 110

原创 基础知识汇总

1. vue生命周期钩子函数生命周期包括8个阶段:创建前/后(beforeCreate/created), 载入前/后(beforeMount/mounted),更新前/后(beforeUpdate/updated),销毁前/销毁后(beforeDestroy/destroyed)。第一次页面加载时会触发 beforeCreate/created, beforeMount/mounted ...

2019-10-10 09:36:57 70

原创 typescript语法

函数参数类型定义function test(): void { //void表示函数没有返回值 return ''; (报错)}function test1(x:String){}test1(12); //函数参数类型应为String(报错)声明函数参数默认值 / 声明可选参数function test2(a:String,b?:Number,c:String...

2019-10-09 16:20:50 77

原创 angular6路由导航基础知识

一. Router 导航跳转相关方法// 1. Html跳转<button routerLink="/archives/not-certification-apply">新增</button>// 2. navigateByUrl() 基于所提供的 url 进行导航。这种导航永远使用绝对路径。this.router.navigateByUrl('/projec...

2019-10-09 16:18:29 248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除