自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 去哪儿项目总结

1

2022-06-06 21:52:49 117

原创 Happy Mmall项目总结

happy mmall项目总结

2022-06-02 19:38:50 186

原创 【html5】

5.22 如何处理HTML5新标签的浏览器兼容性问题方法一 :1、使用静态资源的html5shiv包<!--[if lt IE9]><script src="http://cdn.static.runoob.com/libs/html5shiv/3.7/html5shiv.min.js"></script><![endif]-->2、载入后,初始化新标签的cssheader, section, footer, aside, nav, main,

2022-05-23 00:05:38 245

原创 webpack

webpack是一个前端开发工具,也是一个现代 JavaScript 应用程序的静态模块打包器4大核心是:入口、出口、loader、插件(plugin)检验webpack是否安装成功: npx webpack -v它有两种打包方式 development开发 production生产 如果不设置,会默认为 production打包的命令是:npx webpack在 webpack 中:- 默认入口是:./src/index.js- 默认出口是:./dist/main.js.

2022-05-20 22:55:30 136

原创 git及git使用

git是一个分布式管理代码的工具,特点是方便学习,占用内存小,性能好。git和svn的区别是: svn 集中式代码管理工具 git 分布式代码管理工具github、码云、gitlab都是在线的代码托管平台git安装1.先初始化仓库 用git init命令来执行2.配置用户名:git config --global user.name "xiaoming"配置邮箱: git config --global user.email "[email protected]"3.代码存储到.git仓储中 git

2022-05-19 22:41:57 242

原创 【html】

DOCTYPE的作用?doctype是一种可以标记语言的文档类型声明 他可以让我们知道应该用什么样的规范来定义文档 他还有两种模式 严格模式和混杂模式严格模式是根据w3c来解析代码的 混杂模式是根据浏览器自身方式来解析代码HTML 语义化的理解?html是一种超文本标记语言 它可以进行语言的标记 在没有样式的情况下 代码也会更加的方便我们阅读 有助于爬虫抓取更多的信息 便于开发 且具有可读性遵循w3c的标准 来减少差异化行内元素、块级元素、行内块元素都有哪些及区别?1)行内元素就是 不.

2022-05-17 23:48:45 116

原创 【JS四大金刚】闭包 深拷贝浅拷贝 原型相关的 ajax 相关的

一、闭包:一个函数中嵌套了一个函数,内层函数可以访问外部函数的变量。怎么用到闭包呢?有的时候想获取到局部变量,正常情况下是获取不到的,这个时候就可以使用闭包来获取。闭包可以封装对象的方法和私有属性,vue中的data就是一种闭包形式。闭包作为回调函数,可以实现函数的复用。优点:缺点:二、深拷贝 浅拷贝1.浅拷贝: 将原对象的引用直接赋给新对象,新对象只是原对象的一个引用,而不复制对象本身,新旧对象还是共享同一块内存2.深拷贝: 创建一个新的对象和数组,将原对象的各项属

2022-05-05 17:28:17 448

原创 Javascript 如何实现继承?

Javascript 如何实现继承?答:JS 继承实现⽅式也很多,主要分 ES5 和 ES6 继承的实现1. 先说⼀下 ES5 是如何实现继承的 ES5 实现继承主要是基于 prototype 来实现的,具体有三种⽅法 ⼀是实例继承:即 B.prototype=new A() 让 b 的原型等于 a 的实例function Animal() { this.type = "动物"; } Animal.prototy...

2022-05-03 17:06:59 689

原创 说⼀下 JavaScript 原型,原型链的理解?

1. prototype 显式原型 每个函数都有一个 prototype 属性,被称为显式原型,里面包含了这个构造函数公共的方法2. \_ _proto_ 隐式原型 每个实例对象都会有\_ _proto_ _属性,其被称为隐式原型 每一个实例对象的隐式原型\_ _proto_ _属性指向自身构造函数的显式原型 prototype3. constructor 每个 prototype 原型都有一个 constructor 属性,指向它关联的构造函数。4. 原型链...

2022-05-03 16:59:58 450

原创 说⼀下箭头函数与普通函数的区别?说说 new 操作符具体⼲了什么?

说⼀下箭头函数与普通函数的区别?在 es6 中,提供了⼀种简洁的函数写法,我们称作“箭头函数”。写法:函数名=(形参)=>{……} 当函数体中只有⼀个表达式时,{}和 return 可以省略,当函数体中形参只有⼀个时,()可以省略。特点:箭头函数中的 this 始终指向箭头函数定义时的离 this 最近的⼀个函数,如果没有最近的函数就指向 window。区别:1. 箭头函数不能⽤于构造函数,不能使⽤ new\*\* ⽽普通函数可以2. 在普通函数中,this 总是指向调

2022-05-03 11:08:51 250

原创 es6新增的特性有哪些?方法有哪些?map⽅法、forEach⽅法、filter⽅法的作⽤以及区别?

说⼀下es6新增的特性有那些?(必问) 1. 新增了变量声明⽅式,也就是let和const2. 新增了解构赋值3. 新增了⼀个数组⽅法 字符串⽅法 正则表达的⽅法 函数的⼀些写法 对象的⽅法4. promise5. async await6. class 以及 继承7. 模块化8. 新的数据类型9. ⼤概能想到暂时只有这么多,在项⽬中我经常使⽤let和const 箭头函数。解构赋值 promise 还 有 async await说⼀下数组新增的⽅法有哪些?这些⽅法分.

2022-05-03 11:04:27 144

原创 for in 与 for of 的区别? es5 的面向对象和 es6 的面向对象?

for in 与 for of 的区别?- For in 可以遍历对象 ⽽ for of 遍历对象会报错- for in 遍历数组得到的数组的下表 ⽽ for of 遍历得到的时候数组⾥⾯的每⼀个元素es5 的面向对象和 es6 的面向对象es5 的面向对象是通过 new 一个构造函数实现的es6 的面向对象是通过 class 实现的 es6 的 class 就是面向对象的语法糖(实现同样的功能 但是代码更少 更加简洁)面向对象是一个概念或者编程思想,面向对象是相对于面向过.

2022-05-03 10:51:02 124

原创 【es6】async和await和promise区别?generator 函数?all和race方法?说⼀下 var 、let、const 之间的区别?

说⼀下 async 和 await、以及他们和 promise 的区别?(必问)⾸先 async 和 await 是解决异步的终极⽅案,async 和 await ⼀般配和使⽤,当我们给函数前⾯加上关键字 async,这个时候,这个函数的返回值就是⼀个 promise. ⽽ await 是⼀个同步的操作,await 只能配合 async 只能,不然会报错,await 后⾯可以是表达式,也可以是⼀个 promise,在await 下⾯的代码必须得等待 await 执⾏完之后才能在执⾏他

2022-04-28 16:16:00 105

原创 es6、promise

es6是 ECMAScript 的第六个版本 在 es5 的基础上新增加了一些语法js 分成三部分 dom(文档对象模型) bom(浏览器对象模型) ECMAScript(js 语法)promise 是 es6 提供的一种异步解决方案,在我的理解中 promise 就是把异步操作换了一种写法从之前的嵌套回调函数 变成了链式的写法promise 本身其实就是一个容器 里面放异步的代码 这样就可以让这个异步的代码执行.then .catch 的操作1.1 说⼀下你对 promise.

2022-04-28 16:12:32 109

原创 多环境变量 、mixin 混入 、Vue.extend ---扩展

多环境变量:一般分为开发环境和生产环境development 开发production 生产(上线)怎么配置多环境变量首先建立两个文件 在根目录.env.dev里面写上 NODE_ENV="development".env.prod里面写上 NODE_ENV="production"这样我们可以通过 process.env.NODE_ENV 这个变量来判断当前的环境比如我们可以通过判断不同的环境 在 axios 请求的时候设置不同的 b...

2022-04-28 10:47:47 96

原创 组件写 name 有啥好处?

增加 name 属性,可以实现组件递归调⽤自身,调用的时候用的就是 name 名字可以表示组件的具体名称,⽅便调试和查找对应的组件 比如说 keep-alive 的 include 和 exclude 就是通过组件的 name 属性区分谁缓存谁不缓存的...

2022-04-28 10:40:11 121

原创 Vue.use 是⼲什么的?

vue.use 是用来安装 Vue.js 插件。这个插件可以是一个组件也可以是一个函数,插件里要有一个 install 方法,install 方法调用时,他的第一个参数就是 Vue 在调用 vue.use 方法的时候就会执行 Vue.install 方法该方法需要在调用 new Vue() 之前被调用。...

2022-04-27 11:17:05 165

原创 Vue的diff算法原理是什么?

diff 算法就是对虚拟 dom 进行对比,并返回一个 patch 对象,这个对象的作用是存储两个节点不同的地方,最后用 patch 里记录的信息去局部更新真实的 domdiff 算法的步骤1.js 对象表示真实的 dom 结构,就是我们说的生成一个虚拟 dom,再用虚拟 dom 构建一个真的 dom 树,放到页面中。2.状态改变的时候生成一个新的虚拟 dom 跟旧的进行对比,这个对比的过程就是 diff 算法,通过 patch 对象记录差异...

2022-04-27 11:16:03 1818

原创 虚拟 DOM 是什么? 有什么优缺点?

虚拟 dom 是利用 js 描述元素与元素的关系,用 js 对象来表示真实的 DOM 树结构,创建一个虚拟 DOM 对象由于在浏览器中操作 DOM 是很昂贵的。频繁的操作 DOM,会产⽣⼀定的性能问题.在组件渲染的时候会调用 render 函数,这个函数会生成一个虚拟 dom,再根据这个虚拟 dom 生成真实的 dom,然后这个真实的 dom 会挂载到我们的页面中。如果只是渲染一个页面后期不改动的话 那么虚拟 dom 其实成本更高 ...

2022-04-27 11:11:46 3966

原创 怎样理解 Vue 的单向数据流?

数据总是从⽗组件传到⼦组件,⼦组件没有权利修改⽗组件传过来的数据,只能请求⽗组件对原始数据进⾏修改。这样会防⽌从 ⼦组件意外改变⽗级组件的状态,从⽽导致你的应⽤的数据流向难以理解。注意:在⼦组件直接⽤ v-model 绑定⽗组件传过来的 prop 这样是不规范的写法 开发环境会报警告如果实在要改变⽗组件的 prop 值 可以再 data ⾥⾯定义⼀个变量 并⽤ prop 的值初始化它 之后⽤$emit 通知⽗组件去修改...

2022-04-27 11:08:10 105

原创 MVVM模式的优点以及与MVC模式的区别?

MVVM与MVC的区别

2022-04-27 11:05:58 182

原创 为什么vue中data必须是⼀个函数?

如果data是⼀个函数的话,这样每复⽤⼀次组件,就会返回⼀份新的data,类似于给每个组件实例创建⼀个私有的数据空 间,让各个组件实例维护各⾃的数据。⽽单纯的写成对象形式,就使得所有组件实例共⽤了⼀份data,就会造成⼀个变了全 都会变的结果。 所以说vue组件的data必须是函数。这都是因为js的特性带来的,跟vue本身设计⽆关。...

2022-04-27 11:03:03 150

原创 vue中data发⽣变化,视图不更新如何解决?

在 vue2 中 vue 实例的 data 数据是响应式 的 就是数据变了 视图也会跟着变,如果给某一个 data 新添加了一个字段 这个新添加的字段因为 js 的限制不响应,需要使用 this.$set 方法代替原本的普通添加方法 就能实现响应,这个方法的三个参数 是给谁添加 添加的字段 初始值 如果不是在组件中 用这个方法 那么就用 Vue.set...

2022-04-27 11:02:04 98

原创 说⼀下vue和jquery的区别?

vue于jquery的区别?

2022-04-27 11:00:14 842

原创 说⼀下你对keep-alive的理解?以及在项⽬中如何使⽤?

keep-alive是vue内置的⼀个组件,⽽这个组件的作⽤就是能够缓存不活动的组件,我们能够知道,⼀般情况下,组件进⾏切 换的时候,默认会进⾏销毁,如果有需求,某个组件切换后不进⾏销毁,⽽是保存之前的状态,⽐如说刚刚填好的表单数 据。那么就可以利⽤keep-alive来实现 在搭建 vue 项⽬时,有某些路由组件没必要多次渲染,所以需要将组件在内存中进⾏‘持久化’,此时在router-view上使⽤ keep-alive。 keep-alive可以使被包含的路由组件状态维持不变,即便是组件...

2022-04-27 10:57:25 524

原创 axios拦截器的作⽤?应⽤场景都有哪些?

拦截器有两种 一个是请求拦截一个是响应拦截拦截器不需要手动调用而是每次发送 http 请求的时候都会自动触发我们一般在请求拦截中 放全局的 loading 和 token在响应拦截中关闭全局的 loading 和对 token 进行过期处理 还可以处理错误编码字典...

2022-04-27 10:56:13 94

原创 说⼀下如何对axios进⾏⼆次封装?以及api如何封装?

1. 在src⽂件夹内创建utils⽂件夹2. 在utils⽂件夹内创建request.js⽂件3. 在request.js内引⼊axios4. 使⽤axios.create⽅法创建axios的实例,在axios.create⽅法⾥⾯可以配置请求的公共地址和超时时间以及其他的⼀些配置5. 在创建请求拦截器和响应拦截器6. 在请求拦截器⾥⾯可以获取vuex的token,并通过config.hea...

2022-04-24 10:55:14 54

原创 说⼀下vue中本地跨域如何解决?线上跨域如何解决?

本地跨域是通过在vue.config.js⽂件⾥⾯的devServer属性⾥⾯的proxy属性⾥⾯配置,⼀共配置三个属性,分别是代理名称 代理 地址 开启跨域 重写路径线上跨域是在nginx⽂件⾥⾯配置, 代理名称是通过location 代理名称。proxy_pass 代理地址...

2022-04-24 10:53:07 2163

原创 说⼀下你对slot插槽的理解?

⾸先呢,所谓的插槽就是⼀个占位符,将⾃定义组件的内容展示出来.我们知道⾃定义的组件⾥⾯如果写内容的话,⻚⾯是不会显 示出来的,如果我们想让⾃定义组件⾥⾯的内容显示出来,我们就需要使⽤slot的插槽.⽽插槽分别具名插槽和匿名插槽、以及作⽤域插槽. 我们⽤的⽐较多的具名插槽和匿名插槽,具名插槽需要所有slot标签上指定 name属性,⽽在对应标签上添加v-slot属性.在项⽬中我们⼀般在进⾏组件封装的时候会使⽤插槽,以上就是我对插槽的理解...

2022-04-24 10:50:54 175

原创 说⼀下什么是vue过滤器? 有⼏种?项⽬中如何使⽤,请举例说明?

所谓的vue过滤器就是将数据进⾏⼆次处理,得到我们想要的结果数据 vue的过滤器分为两种,第⼀种是全局过滤器,通过vue.filet来进⾏定义,第⼆种是局部过滤器,需要定义在组件内部 项⽬中我们通过过滤器将后台返回的状态0 和1 转化为⽀付或者未⽀付...

2022-04-24 10:50:01 211

原创 vue中key的作⽤是什么?

避免dom元素重复渲染. 我们⼀般在设置key的时候⾸先尽量会设置为id,或者index下标.

2022-04-24 10:48:27 245

原创 vue如何封装可复⽤的组件?以及请举例说明你封装过的组件?

1. 分析项⽬的所有⻚⾯结构和业务功能,抽离出相同的⻚⾯结构和业务功能 2. 在src⽬录下创建⼀个components这个的⽂件夹3. 在这个⽂件夹内创建可复⽤的组件4. 在需要的⽤的组件⾥⾯引⼊创建的这个可复⽤的组件,并进⾏注册,以标签的形式写在对应的地⽅5. 接下来就需要对可复⽤的组件内容要进⾏封装,那么在封装的时候我们要注意组件的封闭性和开放性以及粗细粒度...

2022-04-24 10:47:44 508

原创 vue常⽤的指令有哪些?vue常⽤的修饰符有哪些?

vue指令 v-if v-show v-html v-text v-on v-bind v-model v-forvue修饰符 .trim 去除⾸尾多余的空格 .stop 阻⽌事件冒泡 .once 只渲染⼀次 .self 事件只作⽤在元素本身 .number 将值转化为number类型 .capter 组件之间捕获 .prevent 阻⽌元素的默认⾏为 .native 事件穿透...

2022-04-24 10:44:59 601

原创 vue的双向数据绑定原理

vue.js是采用数据劫持 结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的getter和setter,在数据变动时发布消息给订阅者,触发相应的监听回调,这个时候就可以实现数据的双向绑定。...

2022-04-24 10:41:18 535

原创 什么是mvvm模式-面试题

MVVM 是把 MVC 的 Controller 和 MVP 的 Presenter 改成了 ViewModel 。 View 的变化会⾃动更新到 ViewModel , ViewModel 的变化也会⾃动同步到 View 上显示。这种⾃动 同步是因为 ViewModel 中的属性实现了 Observer ,当属性变更时都能触发对应的操作...

2022-04-22 20:03:51 226

原创 $nextTick⽅法有什么作⽤?

首先呢, 也叫做异步更新队列方法 而 方法的主要作用就是等待 元素加载完毕之后才会执行的回调函数 我们经常会在 nextTick⽅法⾥⾯获取dom元素

2022-04-22 20:02:30 49

原创 vue组件通信? eventBus 讲解

⽗传⼦ 在⼦组件的标签上定义属性 ⼦组件通过props来进⾏接受,可以通过数组的⽅式进⾏接受,也可以通过对象的⽅式来进 ⾏接收,如果⽗组件没有传递属性,⼦组件可以default来设置默认值 ⼦传⽗ ⼦组件通过this.$emit("⾃定义的事件",要传给⽗组件的数据), ⽗组件通过⼦组件的标签监听⾃定义的时间,通过⽅法来 接收传递的数据 ⾮⽗⼦组件通信 通过中央事件总线,我们也称之为eventBus, 我们需要创建⼀个空的js⽂件,在这个⽂件⾥⾯创建空的vue实例,然后导出这个空的vue实例,...

2022-04-22 20:00:26 265

原创 methods、computed和watch的区别?

⾸先呢,methods是⽤来定义⽅法的区域,methods定义的⽅法需要调⽤才能触发. 不具备缓存⾏ ⽽computed是计算属性,他依赖于属性值的变化,当属性发⽣改变的时候,计算属性⾥⾯定义的⽅法就会触发,computed具有缓 存性,依赖属性值的变化⽽变化. ⽽watch主要是⽤于监听,不具备被缓存性.依赖于数据变化⽽触发. 在项⽬中,⽐如我们获取state的状态的时候我们会把它放到computed⾥⾯,或者在写购物⻋数量计算的时候也会使⽤计算属性. ⽽watch也在项⽬经常使⽤,⽐如我们封...

2022-04-22 19:59:17 35

原创 v-for与v-if的优先级那个⾼?如果同时使⽤v-for和v-if怎么解决?

v-for的优先级⾼. 因为v-for的时候我们才开始渲染dom元素,这个v-if还⽆法进⾏判断. v-for和v-if不能同时使⽤,我们可以通过标签,⽐如div或者template标签来进⾏包裹,把v-if写到包裹的标签上⾯(写到v-for外⾯)...

2022-04-22 19:58:02 59

原创 v-if与v-show的区别?

⾸先v-if和v-show都是控制元素的显示与隐藏, 不过v-if控制元素的显 示和隐藏的时候会删除对⽤的dom元素,当每⼀个显示的时候,都会重新创建dom和渲染. ⽽v-show则是通过css的display:none 和display:block来控制元素的显示与隐藏. v-if⽐较耗费性能,所以我们涉及到频繁的显示隐藏操作我们建议使⽤v-show,如果不 是频繁操作的话,我们可以v-if在项⽬中我会经常使⽤v-if和v-show,⽐如我们在搜索功能的时候,他有⼀个历史记录,这个时候我们根据...

2022-04-22 19:56:46 97

空空如也

空空如也

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

TA关注的人

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