自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手写深拷贝及深拷贝理解

手写深拷贝及深拷贝理解前言浅拷贝与深拷贝的关系为什么使用深拷贝,深拷贝是干什么的?浅拷贝与深拷贝相对应的就是浅拷贝,浅拷贝就是直接赋值;在很多情况下我们都需要给变量赋值,给内存地址赋予一个值,而在赋值引用类型时,只是共享一个内存区域,导致赋值的时候,还跟之前的值保持一至性。 var text1 = { a:1, b:2 } var text2 = text1 text2.a = 2 console.log(text1.a) /

2021-03-31 19:19:48 3285 5

原创 面试题整理(二)

文章目录前言一、数组扁平化递归遍历二、面向对象对象三大特性什么是类三、垃圾回收机制什么是垃圾标记清除什么是内存泄漏四、iframe五、window的onload事件和domcont entloaded前言一、数组扁平化数组扁平化就是使一个数组套数组,里面套很多层的数组变成一个单纯的数组,新数组里面只有那些数组的值(数组扁平化就是将一个多维数组转换为一个一维数组)1、对数组的每一项进行遍历。2、判断该项是否是数组。3、如果该项不是数组则将其直接放进新数组。4、是数组则回到1,继续迭代。

2021-05-20 21:07:54 110

原创 前端SEO(搜索引擎优化)

文章目录前言一、SEO是什么?二、具体怎么优化前端SEO要点标签优化前言一、SEO是什么?SEO是搜索引擎优化,简单来说就是为了能更好的搜索到关键内容,而相对与前端来讲,SEO优化的主要目标就是标签二、具体怎么优化前端SEO要点css,js和html分离开发,精简代码,更有利于搜索引擎抓取有用的内容。“搜索引擎蜘蛛”不认识js,不认识flash,不会去爬iframe里的内容。网站目录结构不宜过深,否则不利于搜索引擎抓取。标签优化 标签,在搜索引擎中,权重最高。标签

2021-05-06 21:30:04 450

原创 小米商城(下)

技术点路由守卫keep-alive封装api封装element-ui(按需引入)设置全局组件设置全局变量代码如下封装api和element-uiimport axios from '../utils/request'export default{ // 获取收藏列表 getCollect(data={}){ return axios({ url:'/api/user/collect/getCollect',

2021-05-06 07:59:09 248

原创 小米商城(上)

技术栈element-uiaxiosroutervuevuex主要模块首页布局全部商品商品详情页购物车我的订单我的收藏

2021-05-06 07:41:11 92

原创 电商后台管理系统项目(下)

使用到的技术点为设置axios拦截器时间过滤器路由守卫面包屑本地存储具体代码如下<template> <el-breadcrumb separator="/"> <el-breadcrumb-item :to="{ path: '/home/welcome' }">首页</el-breadcrumb-item> <el-breadcrumb-item>{{obj.oneName}}</el-breadcr

2021-05-06 00:20:17 66

原创 电商后台管理系统项目(上)

使用到的技术栈有element-uiaxiosrouter(懒加载)vue-table-with-tree-grid项目模板登录模块用户列表角色列表权限列表订单列表数据统计

2021-05-06 00:14:52 56

转载 vue源码observer

function Observer(data) { //在Observer实例上暂存data this.data = data; this.walk(data);}Observer.prototype = { walk: function(data) { var me = this; //对data里所有的属性名进行遍历 Object.keys(data).forEach(function(key) {

2021-05-05 23:56:13 33

转载 vue源码watcher

function Watcher(vm, exp, cb) { //在watcher的实例上保存回调函数 this.cb = cb; //用于更新界面的回调函数 this.vm = vm; //MVVM的实例vm this.exp = exp; //对应的表达式 this.depIds = {}; //n个相关的dep的容器 this.value = this.get(); //初始化获取当前表达式对应的value}Watcher.prototype =

2021-05-05 23:55:57 45

转载 vue源码compile

function Compile(el, vm) { this.$vm = vm; //el == "#app" 判断当前用户传递的el属性是元素节点还是选择器,如果是元素节点则直接保存到$el中通, //this Compile的实例 $vm 是MVVM的实例 (vm) //如果不是 则根据选择器 去查找对应的元素 然后保存 this.$el = this.isElementNode(el) ? el : document.querySelector(el

2021-05-05 23:55:41 60

原创 梦学谷项目总结

主要用到的技术栈为: - element-ui - axios - vue-router这个项目主要运用了增删改查,使用了路由懒加载,其实比较简单项目负责模块主要为如下api封装// 引入axiosimport axios from 'axios'axios.defaults.baseURL = 'http://mengxuegu.com:9999/pro-api';export default axiosimport axios from './axios'export

2021-05-05 23:52:09 131

原创 vue源码MVVM

function MVVM(options) { //给实例新增一个$options属性,.并且把传递过来的配置进行暂存 this.$options = options; //在实例上新增一个_data 保存传递过来的data数据 var data = this._data = this.$options.data; //保存this 为了之后使用this的时候保证this指向的正确性 var me = this; //通过Object.key

2021-05-05 23:28:51 41

原创 超实用的vue面试题详解

vue部分面试题一、vue双向数据绑定原理二、vue组件中data为什么是个函数三、v-if和v-show的区别四、v-if和v-for的优先级五、v-for中的key值的作用六、修改数据页面不更新的原因和解决方案七、$nextTick八、vue-router钩子函数和执行顺序九、vuex的核心概念和运行机制十、axios的封装总结一、vue双向数据绑定原理二、vue组件中data为什么是个函数在vue实例中,data可以是函数也可以是一个对象,但是在vue组件中data只能是一个函数在组件中如

2021-05-05 21:02:32 164

原创 vue组件传参

父传子:在父组件的子组件标签上绑定传输的变量,在子组件中利用props接收// 父组件<template> <div class="home"> <Bread :list='list' /> </div></template><script>import Bread from '../components/Bread'export default { components:{Bread}, data().

2021-04-25 08:17:15 151

原创 for in 和 for of 的区别

for···in和for···of的区别:for···in遍历出来的是key值(即下标),for···of遍历出来的是value(即内容)值var obj = [99,88,77]for(let i in obj){ console.log(i) // 0,1,2}for(let i of obj){ console.log(i) //99,88,77}遍历对象相差不多,for···In遍历出的是属性名,for···of遍历出的是属性值var obj = [a:1,b:2]for(l

2021-04-21 20:43:43 51

原创 封装axios组件

第一步当然是先下载axiosnpm install axios --save第二步单独创建一个文件配置,配置基准路径,axios拦截器import axios from 'axios'const request = axios.create({ baseURL:'', timeout:5000});request.interceptors.request.use(config=>{ return config});request.interceptors.re

2021-04-12 23:59:53 103

原创 原生事件的讲解

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>各种事件</title> <style> #box{ widt

2021-04-11 23:57:58 205

原创 堆栈存储

堆栈存储值类型栈存储: 主要针对(Number、String、Boolean)三种数据。直接存储在栈(stack)中,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储。引用类型堆栈存储: 主要针对Object、Array这两种引用数据以及null, 同时存储在栈(stack)和堆(heap)中,占据空间大、大小不固定。引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。...

2021-04-08 20:59:13 620

原创 跨域,同源策略及jsonp的理解

问题什么是跨域?什么是同源策略?什么是jsonp,jsonp是干什么用的?回答1.跨域:协议、域名、端口都相同才同域,否则都是跨域。跨域是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。2.根据第一个问题答案先回答第三个问题,jsonp就是解决跨域的一种方法。出于安全考虑,服务器不允许 ajax 跨域获取数据,但是可以跨域获取文件内容,所以基于这一点,可以动态创建 script 标签,使用标签的 src 属性访问 js 文件的形式获

2021-04-08 11:43:30 49

原创 get和post的区别

Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post提交的数据在HTTP包的请求包体中,对用户来说都是不可见的,相对安全。Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。Get限制Form表单的数据集的值必须为ASCII字符;而Post没限制Get执行效率却比Post方法好。Get是form提交的默认方法。...

2021-04-08 11:22:35 31

原创 把对象转换为字符串拼接到url后面

使用for in遍历对象 然后进行字符串拼接直接看代码let data = {name:'haha',age:11} let url = './http/data.json' // trueUrl = './http/data.json?name=haha&age=11' function trueUrl(url,data){ // 先给url后面单加一个问号 var tUrl = url + '?' // 遍历对象dat

2021-04-06 11:55:38 1025

原创 原生js或Vue实现模糊搜索

原生js或Vue实现模糊搜索前言三种方法分别使用了 for 循环,filter方法,computed计算属性配合 indexOf 都可以实现模糊搜索正文第一种使用原生js的for循环// arr是要搜索数据所在的数组 利用for循环遍历 for(let i=0;i<arr.length;i++){ //利用index的方法查找 找到返回下标 未找到返回-1 if(arr[i].indexOf(搜索的关键字) == -1){ //用一个新的数组接受值 newArr

2021-04-01 19:38:12 302

原创 原生js封装数组排序,求和,去零方法

原生js封装数组排序,求和,去零方法这些方法都是利用for循环遍历写出来的数组排序function sort(){ let a = []; for(let c=0;c<arguments.length;c++){ a[c] = arguments[c] } for(let i=0;i<a.length;i++){ for(let j=0;j<a.length;j++){ if(a[j]>a[j+1]){ let temp = a[j

2021-03-31 19:59:26 232

空空如也

空空如也

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

TA关注的人

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