自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js复制文本

document.execCommand已经被废弃。

2022-09-13 16:48:01 190 1

原创 js字符串去空格回车换行

【代码】js字符串去空格回车换行。

2022-09-13 16:45:03 2026

原创 vue中table导出带图片表格

带图导出使用插件table2excelnpm install js-table2excel引用import table2excel from 'js-table2excel'使用 // 导出表格 exportTable() { var column = []; this.$refs['myTable'].$children.forEach(element => { // 视需求设置条件 if(eleme

2022-05-31 16:27:09 690

原创 前端国际化 VScode i18n Ally 插件使用

前端国际化 VScode i18n Ally 插件使用1、安装 i8n Ally 插件2、修改vscode 配置 ,添加如下配置"i18n-ally.localesPaths": [ "src/locales/lang" ], "i18n-ally.languageTagSystem": "legacy", "i18n-ally.sourceLanguage": "en-US", "i18n-ally.displayLanguage": "zh-CN", "i18n-all

2021-05-11 10:17:09 6801 1

原创 vue请求拦截和响应拦截

import axios from 'axios'import { Message, Loading } from 'element-ui';import router from './router'let loading //定义loading变量function startLoading() { //使用Element loading-start 方法 loading = Loading.service({ lock: true,

2020-05-18 19:30:44 1769

原创 vue面试题2

ajax放在哪个生命周期中理解:在create的时候,视图中的dom并没有渲染出来,所以此时如果直接操作dom节点,无法找到相关的元素在mounted中,由于此时dom已经渲染出来了,所以可以直接操作dom节点一般情况下都是放在mounted中,保证逻辑代码的统一性,因为生命周期是同步执行的,ajax是异步执行的何时需要beforeDestory理解:可能在当前页面中使用了$on方法,那需要在组件销毁前解绑清除自己定义的定时器解除时间的绑定diff算法原理理解:先同级比较,再比较子节

2020-05-13 22:25:17 152

原创 vue面试题

1.响应式数据的原理理解:(1)核心点:Object.defineProperty(2)默认vue在初始化数据时,会给data中的属性使用Object.defineProperty重新定义所有的属性,当页面取到对应属性时,会进行依赖收集(收集当前组件的watcher)如果属性发生变化会通知相关依赖进行更新操作。2.vue中如何检测数组的变化理解:(1)使用函数劫持的方式,重写了数组的方法(2)vue将data中的数据,进行原型链重写。指向了自己定义的数组原型方法,这样当调用数组api时,就可以

2020-05-13 21:54:30 181

原创 创建vue项目时如何切换包管理器

一般我们在创建vue项目时,会自动默认npm或者yarn或者之前使用的一些包管理器,当我们想更换时,只需在本地文件中找到.vuerc文件修改packageManager

2020-05-05 21:03:13 841

原创 ES6模块化

ES6模块化规范中定义1.每个js文件都是一个独立的模块2.导入模块成员使用 import 关键字3.暴露模块成员使用 export 关键字

2020-04-07 23:32:20 112

原创 vue去除eslint

创建vue项目时有些人安装了eslint,vue项目中eslint的代码校验可能很多强迫症看着难受又没有规范的编程习惯,可以这样关闭eslint

2020-04-07 23:10:32 4389 1

原创 git命令

git status 查看git状态git init git初始化创建.git文件夹git add . 添加到暂存区git commit -m " " 提交到本地仓库创建远程仓库后git remote add origin 连接远程主分支git push -u origin master 本地主分支提交到远程主分支创建自己分支,操作主分支lisi分支目录git cl...

2020-04-07 21:00:33 110

原创 vue计算属性的基本用法

计算属性1.为何需要计算属性表达式的计算逻辑可能会比较复杂,使用计算属性可以使模板内容更加简洁2.计算属性的用法<div id="app"> <div>{{msg}}<div> <div>{{reverseString}}</div></div>var vm = new Vue({el:"app",dat...

2020-04-04 21:41:03 318

原创 vue自定义指令

自定义指令自定义指令介绍 directives - 对普通 DOM 元素进行底层操作(1) 自定义指令注册当页面加载时,该元素将获得焦点 (注意:autofocus 在移动版 Safari 上不工作)。事实上,只要你在打开这个页面后还没点击过任何内容,这个输入框就应当还是处于聚焦状态。现在让我们用指令来实现这个功能:// 注册一个全局自定义指令 `v-focus`Vue.directiv...

2020-03-31 22:56:04 133

原创 slot插槽

vue里提供了一种将父组件的内容和子组件的模板整合的方法:内容分发,通过slot插槽来实现匿名插槽在父组件中使用子组件的时候,在子组件标签内部写入内容。在子组件的模板中可以通过来使用<div id="app"> <hello> <div>联通卡</div> <div>移动卡</div...

2020-03-31 22:43:44 147

原创 过滤器

vue中可以设置filter(过滤器)来实现数据格式化,双花括号插值和 v-bind 表达式中使用vue1.0的有默认的过滤器,但是在2.0的时候全部给去掉了所以在vue中如果想要使用过滤器就需要自定义自定义的方法有两种:全局定义和局部定义,全局定义的过滤器在任意的实例、组件中都可以使用,局部定义就是在实例、组件中定义,只能在这个实例或组件中使用全局定义Vue.filter(na...

2020-03-31 22:32:14 145

原创 vue组件使用

(1)组件化模块化就是将系统功能分离成独立的功能部分的方法,一般指的是单个的某一种东西,例如js、css而组件化针对的是页面中的整个完整的功能模块划分,组件是一个html、css、js、image等外链资源,这些部分组成的一个聚合体优点:代码复用,便于维护划分组件的原则:复用率高的,独立性强的组件应该拥有的特性:可组合,可重用,可测试,可维护(2)组件在vue中,我们通过Vue....

2020-03-31 21:29:36 297

原创 axios数据请求

// getaxios.get("json/test.json?name=zhangsan&age=10").then(res=>{ // res.data 才是真正的后端数据 console.log(res.data.data.films) this.datalist = res.data.data.films})//post -1- x-www-...

2020-03-31 21:22:34 140

原创 vue事件函数的调用方式

1.直接绑定函数名称<button @click="say">hello</button>2.调用函数<button @click="say()">hello</button>事件函数传参使用调用函数//$event事件对象<button @click="say("hi",$event)">hello</button...

2020-03-31 21:11:30 2284

原创 解决swiper在PC端滑动,切换移动端不动的问题

项目在浏览器上切换到移动端,遇到轮播图无法滑动的问题,在这里添加这两行代码可以解决 pagination: { el: ".swiper-pagination", observer: true, observeParents: true }...

2020-03-31 20:32:06 2628

原创 简单路由的实现

引入vue-router,如果是在脚手架中,引入VueRouter之后,需要通过Vue.use来注册插件router/index.js文件import Vue from 'vue'import Router from 'vue-router'Vue.use(Router)2.创建router路由器new Router({ router:[ path:"/home",co...

2020-03-28 23:29:52 329

原创 vue生命周期的理解

vue组件从创建到销毁的一系列过程叫做组件的生命周期。vue在整个生命周期里面提供了一些函数,可以在内部实现一些业务逻辑,并且这些函数会在一些特定的场合下去执行。vue的功能围绕生命周期执行,不同的阶段对应不同钩子函数组件的生命周期钩子函数大致可以分为三个阶段:初始化、运行中、销毁1.初始化阶段: beforeCreate(创建前) created (创建后) beforeMoun...

2020-03-24 20:05:52 151

原创 Vue虚拟dom

虚拟dom频繁且复杂的dom操作通常是前端性能瓶颈的产生点,Vue提供了虚拟dom的解决办法虚拟的DOM的核心思想是:对复杂的文档DOM结构,提供一种方便的工具,进行最小化地DOM操作。这句话,也许过于抽象,却基本概况了虚拟DOM的设计思想(1) 提供一种方便的工具,使得开发效率得到保证(2) 保证最小化的DOM操作,使得执行效率得到保证也就是说,虚拟dom的框架/工具都是这么做的:...

2020-03-23 21:52:30 109

原创 基于Promise发送Ajax请求

function queryData(url) { var p = new Promise(function(resolve, reject){ var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState != 4) r...

2020-03-22 22:38:29 835

原创 vue请求json数据

<div id="app"> <ul> <li v-for="book in books">{{book.title}} {{book.author}}</li> </ul> <button @click="get">发起http请求</butt...

2020-03-22 09:59:18 1706

原创 关于promise理解

Promise解决回调地狱的方案之一把回调地狱写的优雅的方案之一Promise 单词承诺这个承诺有几个状态(三个)1. 承诺继续 => 两个人在一起过日子2. 成功 => 最后两个人埋在一个坟里面3. 失败 => 有一个人埋在别人的坟里一旦状态确定, 不可变更=> 继续 -> 成功=> 继续 -> 失败=> 不可能由成功转变为...

2020-03-20 11:56:57 165

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

当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转 为 getter/setter。Object.defineProperty 是 ES5 中一个无法模拟的特性, 这也就是 Vue 不支持 IE8 以及更低版本浏览器的原因。 每个组件实例都对应一个 watcher ...

2020-03-19 21:25:45 123

原创 同步异步概述

同步一个人同一时间只能做一件事情,只有一件事情做完,才能做另一件事情。即上一行代码执行完成后,才能执行下一行代码。异步一个人事情做了一半,转而去做其他事情,当其他事情做完以后,再回过头做之前未完成的事情。就是异步代码虽然要花时间去执行,但程序不会等待异步代码执行完成后再继续执行后续代码,而是直接执行后续代码,当后续代码执行完成后再回头看异步代码是否返回结果,如果已有返回结果,再调用事先准...

2020-03-19 00:28:10 133

原创 封装ajax请求

封装 ajax 请求, 把 GET 请求 和 POST 请求封装成一个函数,在需要发送请求的时候直接调用,因为 GET 和 POST 携带参数的方式不一样, 封装成两个函数,一个叫做 getSend(), 一个叫做 postSend()function getSend(url, cb) { // cb传递进来的那个函数 // 请求成功的时候调用 // 1. ...

2020-03-19 00:09:25 91

原创 身份验证

HTTP 是一种没有状态的协议,也就是它并不知道是谁访问。客户端用户名密码通过了身份验证,不过下回这个客户端再发送请求时候,还得再验证。session 思想1、客户端用户名跟密码请求登录。2、服务端收到请求,去库验证用户名与密码。3、验证成功后,服务端种一个cookie或发一个字符到客户端,同时服务器保留一份session。4、客户端收到响应以后可以把收到的字符存到cookie。5、客...

2020-03-14 15:16:36 345

原创 node+MongoDB

安装npm install mogodb -s引入var mysql = require('mongodb')实例化并连接let mongoCt = mongodb.MongoClientmongoCt.connect('协议://地址:端口'),回调(err,client)连接库和集合let db = client.db('库名')let user = db.collent...

2020-03-14 14:59:06 246

原创 node+mysql

//1引入mysql客户端的包var mysql = require("mysql")var express = require("express")var app = express()app.listen(3000)//2创建库的链接var connection = mysql.createConnection({ host: 'localhost', //mysql的服...

2020-03-14 14:50:08 107

原创 ajax请求node服务器基本操作

使用ajax发送get请求 var xhr = new XMLHttpRequest() xhr.open('get', 'http://localhost:3000/first') xhr.send() xhr.onload = function() { console.log(xhr.responseText) ...

2020-03-14 14:32:33 465

原创 MongoDB的安装配置

MongoDB是一个基于分布式文件存储的数据库,由c++语言编写。旨在为web应用提供可扩展的高性能数据库存储方案。它的特点是高性能,易部署,易使用,存储数据非常方便。一、下载官网链接二、安装配置下载好文件,一路下一步,最好选择Custom,不会下载过多,也完全够用,再往后一定不要取消左下角默认下载的图形化管理工具,否则会下载太长时间,甚至卡主不动。如果你已经卡主,再取消从新安装,最好重启...

2020-03-14 14:12:01 79

原创 前后端交互B/S

对于web开发而言,仅仅掌握html+css+JavaScript,实现相关的页面功能已经不是困难的事,然而很多初级前端开发者对于实现前后端数据交互还所知甚少,网页的使用数据是实时获取的,所以有必要掌握数据交互的基本过程。网络数据处理分为表示层,处理层,数据层。我们使用浏览器打开的网页就是表示层,业务层就是利用后端代码进行数据处理,数据层用来存储相关数据,使用后端代码来操作数据库的增删改查。#...

2020-02-23 12:32:26 657

空空如也

空空如也

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

TA关注的人

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