自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vue3.0项目创建并集成vue-router、vuex

vue3.0项目创建vue-clinpm i -g @vue/cli@next本地的vue-cli需要删除并重启电脑新建项目会有vue3选项,如果需要其他配置,需要选择第三个选项手动选择。vite使用vite速度更快$ npm init vite-app project-name$ cd project-name$ npm i$ npm run dev路由npm安装npm i vue-router@next创建路由文件/* 从路由中导入createRouter c

2021-06-01 16:07:18 492

原创 二次封装element-ui分页器

<template> <div :class="{ hidden: hidden }" class="pagination-container"> <el-pagination :background="background" :current-page.sync="currentPage" :page-size.sync="pageSize" :layout="layout" :total="total" v-bind="$attrs" @size-change=

2020-11-20 14:07:46 318

原创 通过v-model绑定父子组件,最方便的组件通信

最近在做的一个项目少说要有几十个下拉选择框,于是我就对element-ui的下拉框进行了二次封装,但是在使用时候发现了一个问题,每个组件都需要提交一个事件来同步在父组件表单中绑定的对象,特别繁琐。于是我就想到用v-model来绑定父父组件的值,在子组件直接改变,而不是再提交事件到父组件去改变。逻辑很简单,直接上代码父组件<template><div class="home"> <Child v-model="value" /></div>&l

2020-11-05 18:27:03 319

原创 element-ui动态增加表单项并验证

先来上图,默认效果如图所示然后点击添加按钮输入框是动态添加,并且结果表是通过是否加工控制DOM元素的加载。点击删除回到最初。下面上代码template<!-- 动态增加表单项 --> <el-form-item id="make_group" v-for="(item, index) in ruleForm.group" :key="index" :class="ruleForm.group.length > 1 ? 'active' : ''">

2020-11-05 15:54:48 1436 4

原创 element表格分页选中、限制多选条数

1. 在标签上添加row-key,值可以是你在当前表格里面循环数组的任意唯一值,我这里是id<el-table row-key="id" ref="multipleTable" @selection-change="handleSelectionChange" ></el-table>2. 在多选列上面添加:reserve-selection=“true”,在数据更新之后会保留当前选中的数据<el-table-column type="selection" width=

2020-10-28 18:43:37 3549

原创 vue自定义下拉框组件

<template> <div v-show="isShow"> <div class="pull_down_container" :style="{top:top,left:left,right:right,height:height}"> <slot name="pullDown"></slot> <!-- 右上角关闭图标 --> &lt

2020-09-28 11:52:07 436 1

原创 获取小程序页面路径

第一步:进入小程序后台,点击工具,点击生成小程序码第二步:输入小程序appID,然后下一步第三步:鼠标移动到获取更多页面路径,然后输入当前小程序的开发者微信号第四步:进入虎牙小程序。点击左上角更多,然后复制链接复制出来的链接要把.html删除...

2020-09-28 11:48:16 2890 1

原创 JS时间转换多久之前

// 时间格式转换 time(Array){ let showTime //后台返回的数组 遍历数组得到每个对象 Array.forEach(ele => { // 获取时间戳 let oldTime = new Date(ele.articleTime).getTime() let time = new Date().getTime() let difference = time - oldTime

2020-09-28 11:34:47 232

原创 vue-amap使用

引入vue-amap安装npm install vue-amap --save引入import VueAMap from 'vue-amap';配置key和插件VueAMap.initAMapApiLoader({ key: '高德地图key', //插件 plugin: [ 'AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.M

2020-09-23 14:19:03 954

原创 element表格出现多余横线(线条)问题解决

app.vue加入以下样式就看不到了body .el-table::before { z-index: inherit;}

2020-09-16 13:56:01 3047 3

原创 vue锚点定位+滚动效果

码以备用只有向上没有向下的定位和滚动locationAnchor() { setTimeout(() => { // 获取dom let cateItem = document.querySelectorAll(".active"); let tempTop = cateItem[0].offsetTop - 10; // 距离细化 let step = tempTop / 50; //

2020-08-23 15:48:56 1046

原创 Vue异步组件加载(代码+注释)

<template> <div class="home"> <!-- 点击切换组件 --> <button @click="onClick">点击切换组件</button> <!-- 使用is动态组件切换 --> <component :is="componentId"></component> </div></template><scr

2020-08-19 23:03:39 140

原创 superMap简单地图

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> body {

2020-08-18 16:29:49 466

原创 JavaScript 数据类型判断

数据类型JavaScript的数据类型分为基本数据类型和引用数据类型两种基本数据类型NUmberStringBooleanundefinedSymbolnull引用数据类型ObjectObject包含function,Array,Date等。一、typeoftypeof用来判断基本数据类型,返回值是数据类型typeof只能用来判断基本数据类型,对于引用数据类型来说只会返回一个Object(function会返回function)。在 JavaScript 中二进

2020-08-04 22:32:11 313

原创 前端面试题总结

这两天电话面试了两家公司,总结一下遇到的面试题ES6新增的一些特性新增了块级作用域,let和const新增了class用来定义类新增了一种基本数据类型symbol,symbol表示独一无二,允许设置默认值,不能用new关键字新增了结构赋值新增了箭头函数,引入了rest参数函数允许设置默认值新增了set和map数据结构set可以用来快速去重map的特点就是key可以是任意类型新增了模块化,import导入和export导出。数组新增了一些api,如 isArray(判断是否为数

2020-07-30 21:03:48 177

原创 前后端分离?

前后端分离出现的背景在以前的项目开发过程中,后端开发一直都是开发团队的核心,前端甚至被称为页面仔。顾名思义,就是前端的工作就是写写静态页面交给后端去套模板。在以往的项目中,大部分前后端都是高耦合的,虽然这明显不符合开发过程中经常会提到的高内聚低偶合。但是在以前互联网不是那么繁荣的年代,发挥着巨大的作用。但是随着技术的发展,页面越来越复杂,还是按照以往的方式来开发的话,因为耦合度太高,会极大的拖延项目开发的进度。这时候主要是前端还没有提出模块化,可复用化的开发理念或者思想,后来随着JS提出模块化之

2020-07-13 08:09:00 90

原创 防抖节流函数

/* * 函数防抖* 函数节流*//* * 函数节流* fn 需要进行节流的函数* delay 节流期限制*/export const throttle = (fn, delay) => { // 初始化上次调用时间 let last = 0 // 以闭包的方式来实现 return function(){ // 保存参数 let args = arguments let now = +new Date

2020-06-25 21:45:00 256

原创 五分钟学VUE会移动端拖拽事件

给标签绑定事件,组件标签需要.native修饰符<Suspend class="suspend_box" @mousedown.native="down()" @touchstart.prevent.native="down()" @mousemove.native="move()" @touchmove.prevent.native="move()" @mouseup.native="end()" @touchen

2020-06-23 22:35:33 1281

原创 http协议

http简介HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。他不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式。最初是用来向客户端传输html页面的内容。默认端口是80。HTTP三点注意事项HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求

2020-06-20 22:03:29 142

原创 Event Loop事件循环机制

EventLoopJavaScript是一种单线程语言,所有任务都在一个线程上完成。即代码执行是同步并且阻塞的。Event Loop 就是为了确保异步代码可以在同步代码执行后继续执行的Event Loop即事件循环,指浏览器或者node执行环境下的一种解决JavaScript单线程运行时不会发生阻塞的一种机制。也是我们常说的异步执行的原理。***Wikipedia***对Event Loop的定义a programming construct that waits for and dispatch

2020-06-20 11:33:02 223

原创 vue中使用moment.js

moment.jsMoment.js 是一个轻量级 JavaScript 日期处理类库,提供了日期格式化、日期解析等功能。它支持在浏览器和 NodeJS 两种环境中运行。此类库能够将给定的任意日期转换成多种不同的格式,具有强大的日期计算功能,同时也内置了能显示多样的日期形式的函数。另外,它也支持多种语言,你可以任意新增一种新的语言包。npm下载moment.jsnpm install moment --savevue文件中使用moment首先封装一个时间过滤器文件dateFilter.js

2020-06-18 21:02:10 495

原创 动态语言概述

动态语言脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。(弱类型语言)动态语言特点动态语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间。 HTML通常用于格式化和链接文本。而编程语言通常用于向机器发出一系列复杂的指令。动态语言与编程语言也有很多相似地方,其函数与编程语言比较相像一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严

2020-06-18 20:10:19 272

原创 formData方法以及异步上传文件

FormDataFormData 接口提供了一种表示表单数据的键值对的构造方式,经过它的数据可以使用 XMLHttpRequest.send() 方法送出,本接口和此方法都相当简单直接。如果送出时的编码类型被设为 “multipart/form-data”,它会使用和表单一样的格式。FormData方法append()向 FormData 中添加新的属性值,FormData 对应的属性值存在也不会覆盖原值,而是新增一个值,如果属性不存在则新增一项属性值。formData.append("key

2020-06-17 23:02:40 808

原创 Redux

Redux的核心原理1.将组件的状态统一进行管理管理,由store来管理state。2.reducer的作用是返回一个新的state去更新store中对用的state。3.按redux的原则,每一次状态的改变都应通过提交action去触发,action传入对应的reducer 中,reducer返回一个新的state更新store中存放的state。4.subscribe是为store订阅监听函数,这些订阅后的监听函数是在每一次dipatch发起后依次执行5.redux避免了数据在组件之间流通导致

2020-06-12 22:52:17 104

原创 webpack babel-loader一些配置属性

初始化项目npm init安装webpacknpm i webpack webpack-cli --save-d安装babel-loadernpm install babel-loader@8.0.0-beta.0 @babel/core @babel/preset-env webpack// 导入静态资源目录const path = require('path')module.exports = { // 指定开发环境 mode:"development",

2020-06-11 22:35:32 256

原创 vue传递token信息到后台

login.vue// 登录方法 submitForm(ruleForm) { this.$refs[ruleForm].validate(valid => { if (valid) { // 调用登录接口 传递用户信息到后台获取数据 Login(this.ruleForm.username, this.ruleForm.password) // 成功回调 .then(re.

2020-06-11 22:27:02 1723

原创 vue自定义指令

vue自定义指令**vue除了默认的指令,还允许设置自定义指令 directive **。自定义指令的使用场景不多,但是如果我们需要直接操作DOM就可以用到它。自定义指令分为全局自定义指令和局部自定义指令全局自定义指令场景:输入框默认选中场景//mian.js注册全局自定义指令//使用Vue.directive来新建一个全局的自定义指令,第一个参数focus是指令名称//第二个参数是一个对象,对象内使用了一个inserted钩子函数,el参数表示了绑定了这个指定的DOM元素//指令名在

2020-06-10 19:53:54 89

原创 vue路由拦截之响应拦截使用

/* * 新建配置响应拦截文件* routerGuard.js*/// 设置路由拦截// 引入路由页面import router from "./index"// 本地存储的getItem方法import {GET,SET} from "../appLocation/localManager"// 登录的api接口import {userInfo} from "../network/requestData"// 路由守卫router.beforeEach((to,from,n.

2020-06-09 20:10:27 239

原创 vue响应式原理

要了解vue响应式原理首先应该知道什么是响应式<template> <div> <div> {{user.name}} </div> <button @click="onClick"> 更改 </button> </div></template><script>data() { ret

2020-06-09 19:01:18 600

原创 vue指令

vue提供了很多的指令,使用这些指令能够更加方便我们进行编程v-textv-text 能够整体更新节点的内容,如果需要部分更新则需要用{{textContent}}插入<template> <div> <span v-text="msg" ></span> || 上下两种写法作用相同 <span>{{msg}}</span> </div></t

2020-06-09 18:54:48 147

原创 Promise

PromisePromise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API(应用程序接口),各种异步操作都可以用同样的方法进行处理。Promise对象有以下两个特点对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和Rejected(已失败)。只有异步操作的结果

2020-06-08 21:29:53 100

原创 简单封装localStorage本地存储

// vue中所有元素作用于vue实例,所以需要加上window前缀const localStorage = window.localStorage// 设置export function SET(key,value){ return localStorage.setItem(key,JSON.stringify(value))}// 获取export function GET(key){ return JSON.parse(localStorage.getItem(key)

2020-06-08 21:22:11 198

原创 webpack进阶配置

首先安装webpacknpm i webpack webpack-cli -D新建webpack.config.js文件,对webpack进行配置const path = require("path");/* * loader下载后可以直接使用,plugin还需引入才能使用。*/const HtmlWebpackPlugin = require("html-webpack-plugin");// 独立生成css文件const MiniCssExtractPlugin = requir

2020-06-07 19:16:03 153

原创 JS冒泡排序

var arr=[100,0.6,28,49,94,67,11]function sortArr(arr){ let arrLen = arr.length // 外层循环定义循环次数 for(let i = 0; i<arrLen-1;i++){ // 内层循环减去已经排好序的元素i for(let j = 0; j<arrLen-1-i;j++){ // 相邻元素比较找到最小数 并交换位置 if(arr[j]>arr[j+1]){

2020-06-06 18:13:45 120

原创 vue.config.js配置属性[新鲜出炉]

因为新版的vue-cli已经没有了config这个文件,所以需要我们手动创建然后才能去配置。首先在项目根目录创建vue.config.js文件具体配置项如下module.exports = { // 配置基本路径 === webpack的output.publicPath // 可以根据当前开发环境进行区分 publicPath:process.env.NODE_ENV === "production"?"./":"./", outputDir:"dist",

2020-06-06 12:23:46 330

原创 webpack的基本使用

webpack:webpack是一种前端资源构建工具 一个静态模块打包器在webpack看来 前端所有资源文件都会作为模块处理他将根据模块的依赖关系进行静态分析 打包生成对应的静态资源与webpack类似的gulp grunt browserifywebpack官方网址webpack的特点:1、模块化;2、Tree shaking;3、代码懒加载webpack的核心概念:入口(entry)输出(output)loader插件(plugins)安装webpack在使用web

2020-06-05 18:32:01 112

原创 我与uni-app不得不说的那段故事……

之前在朋友的安利下了解到了uni-app,然后最近因为一些原因就想着学习一下,毕竟程序员还是要不断提升自己嘛。害~首先,什么是uni-app呢uni-app是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。简单来说就是一次开发,多端适配。uni-app官网创建第一个uni-app项目uni-app支持通过 可视化界面、vue-cli命令行 两种方式快速创建项目

2020-06-03 21:17:26 285

原创 git基础之ssh生成秘钥

什么是ssh?SSH是英文Secure Shell的简写形式SSH 为建立在应用层基础上的安全协议。SSH 的原理跟 HTTPS 差不多,都是基于 TCP 和 非对称加密进行的应用层协议它跟 HTTPS 的不同之处在于 HTTPS 通过 数字证书 和 数字证书认证中心 来防止中间人攻击,而 ssh 服务器的公钥没有人公证,只能通过其公钥指纹来人工确定其身份。复制一段百度百科来更详细的说明ssh协议:传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明

2020-06-03 19:50:13 212

原创 当git遇见Vue

本文主要说明使用git将vue项目提交到远程仓库第一步首先创建一个vue项目文件vue项目名不能包含大写vue create 项目名称然后进来会发现使用vue脚手架创建的文件是默认有.git文件夹的。也就是默认就是一个仓库。2.连接远程仓库git remote add 远程仓库地址别名 远程仓库地址3.获取远程库与本地同步合并如果远程库不为空必须做这一步,否则后面的提交会失败git pull --rebase origin master4.创建并切换到开发分支创建

2020-06-02 18:06:03 255

原创 git基础------分支管理

什么是git分支在开发过程中,我们通常不会是一个人去做一个项目,而是团队分工,共同开发。如何有效地协同开发人员之间,以及开发、测试、上线各环节的工作,在多人开发时是不可避免会遇到的问题。一般我们在创建项目的时候会针对不同环境创建两个常设分支development:开发环境的稳定分支,公共开发环境基于该分支构建。master:主分支,所有提供给用户使用的正式版本,都在这个主分支上发布。还有一些临时性的分支,比如说功能分支,修复bug分支,预发布分支等等分支管理有什么好处?因为同时并行推进

2020-06-01 18:36:29 233

空空如也

空空如也

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

TA关注的人

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