- 博客(10)
- 收藏
- 关注
原创 this call apply bind的关系
总结1.在浏览器里,在全局范围内this指向window对象;2.在函数中,this永远指向最后调用它的那个对象;3.构造函数中,this指向new出来的那个新的对象;4.call、apply、bind中的this被强绑定在那个指定的那个对象上;5.箭头函数中this比较特殊,箭头函数this为父作用域的this,不是调用时的this.要知道前四种方式都是调用时确定,也就是动态的,而箭头函数的this指向是静态的,声明的时候就确定了下来;6.apply、call、bind都是js给函数内置的一些
2021-01-20 16:52:33 111
原创 js获取dom元素的方法
普通的有6种1. 通过id获取 (getElementByld)2. 通过name属性 (getElementsByName)3. 通过标签名 (getElementsByTagName)4. 通过类名 (getElementByClassName)5. 通过html的方法 (document.documentElement)6. 获取body的方法 (document.body)特别的2种通过css选择器获取一个元素(querySelector)例:获取文档中 id=“demo”的元素
2021-01-18 18:44:59 132
原创 项目开发流程
1.多环境变量,axios请求响应拦截,api封装统一管理首先开发这个项目我用的是vue脚手架3.0,项目创建完后,首先我会配置多环境变量,方便后期测试,上线阶段快速切换后台接口。然后安装配置项目所用到的ui框架(后台管理系统element-ui,移动端vant-ui),之后安装axios,对axios进行封装,添加请求拦截和响应拦截,我一般在请求拦截器中,给请求头添加token字段。当然token要存储在vuex中,还有loding动画的开启,相应拦截中,我一般会关闭请求时开启的动画,根据后端返回的状态
2021-01-15 21:23:35 95
原创 vue路由守卫
vue中路由守卫一共有三种:一个全局路由守卫,一个是组件内路由守卫,一个是router独享守卫所谓路由守卫可以简单的理解为一座房子的门口的保安,想要进入这个房子就必须通过保安的检查,要告诉路由守卫你冲哪里来?要到哪里去?然后保安再告诉你下一步该怎么做?如果你的确是这个房子主人允许进入的人,那就让你进入,否则就要打电话给房子主人,跟房主商量,给你权限。一、全局路由守卫所谓全局路由守卫,就是小区大门,整个小区就这一个大门,你想要进入其中任何一个房子,都需要经过这个大门的检查全局路由守卫有两个:一个是全局
2021-01-14 16:42:58 142
原创 Vue项目打包优化
一、知识点和目的1、打包优化的目的1、项目启动速度,和性能2、必要的清理数据3、减少打包后的体积第一点是核心,第二点主要是清理console2、性能优化的主要方向1、去重.map文件2、开启CDN加速3、代码压缩4、图片压缩5、公共代码抽离,写在configureWebpack模块中6、首屏骨架优化7、开启Gzip压缩...
2021-01-09 15:17:48 427
原创 Vue双向数据绑定
vue双向数据绑定原理话述vue.js是采用数据劫持结合发布者-订阅者模式的方式,通过object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染试图实现步骤observer主要是负责对Vue数据进行数据劫持,使用数据拥有getter和setter方法指令解析器负责绑定数据和指令,绑定试图更新方法watcher负责数据监听,当数据发生改变通知订阅者,调用试图更新函数更新试图object.defineP
2021-01-08 17:07:27 63
原创 项目思开发流程
.首先要根据项目效果图,观察需要用什么框架写,是pc端的还是移动端的【这里选择(vue:他是一个渐进式框架,因为他使用起来简单,灵活,高效率,容易上手)】2.选择好后创建相对应的框架,引入所需要的组件。【(vue 2.0)】【这里选择(vant:他是一个轻量、可靠的移动端 Vue 组件库,使用起来很容易上手)】3.移动端我还会配置一下rem,安装好对应插件,可以让px自动转换成rem自适应布局,或者使用vw、vh以及百分比来实现自适应布局4.再利用scss封装一下组件公共的样式。【(可以使用混
2021-01-04 21:25:48 86
原创 ES6class继承
ES6中的class继承1、关于class的本质定义一个类class Person{constructor(skin,language){this.skin=skin;this.language=language;}say(){console.log(‘I am a Person’)}}由于class本质还是一个function,因此它就会拥有一个的prototype属性,当new一个class时,会把class的porototype属性赋值给这个新对象的 __proto__属性。(
2020-12-16 21:24:33 161
原创 Vue项目开发部署
vue项目开发部署1、如何使用vue开发安装vue脚手架 cnpm i @vue/cli -gvue create myappvue ui如何使用3的脚手架兼容2的脚手架cnpm i @vue/cli-init -gvue init webpack myappvue-cli1.cnpm i vue-cli -g2.vue init webpack myapp2.22. 以3为例vue create myappcd myappcnpm run serve2.2.3添加dev指令
2020-12-15 20:41:15 380
原创 Github初学笔记
Github初学笔记1、Git是什么Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。1.2 Git基本工作流程git仓库用于提交记录,暂存区可以临时存放被修改文件,工作目录是被Git管理的项目目录1.3 Git使用前配置在使用 git 前,需要告诉 git 你是谁,在向 git 仓库中提交时需要用到。1.配置提交人姓名:git config --global user.name 提交人姓名2.配置提交
2020-12-14 22:07:15 91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人