自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 问答 (1)
  • 收藏
  • 关注

原创 使用vue-cli3打包后ueditor编辑器路径不正确的问题

前几天做了一个后台管理系统,由于要使用一款富文本编辑器,挑来选去,我选择了百度的ueditor编辑器,配合vue-cli3使用。按照他的流程,也是将编辑器放在了我的系统中,但是当我要打包后发现打包后浏览器加载不了ueditor.config.js这个文件,仔细一看原来是路径不对,一开始我以为是webpack的原因,但是由于我已经再vue.config.js中配置了,而且其他文件都加载成功,所以我感.........

2019-06-27 16:41:28 5111 10

原创 实现一个fiber架构的简单react

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document<

2021-10-10 14:47:33 142 1

原创 关于js原型链

var number = 123; Object.prototype.aa = "aa" console.log(number.aa) //aa首先理解为什么我们定义一个数字number 在Object原型定义一个aa 结果数字能找到aa属性并且输出,首先 aa肯定在number的原型链中,我们才能调用,所以我们打印出数字number.__proto__的结构:在新版的chrome中. __proto__变为[[prototype]],变得更容易理解...

2021-08-24 23:44:51 162

原创 使用发布订阅模式定义一个自己的简单promise

现手写一个简单的promise: class MyPromise { constructor(fn) { this.value = ""; this.pending = "pending"; this.reson = ""; var res = value => { if (this.pending ===

2021-08-22 15:48:48 290

原创 js设计模式之观察者模式与发布订阅者模式

观察者模式与发布订阅模式是形成js对象之间的一种依赖关系的模式,比如a发生了一些动作,b那边可以响应,观察者模式就是对象之间直接观察,比如在相亲会上,a一直观察b,当b透露出自己的信息,a会直接接收,判断是否符合条件,而发布订阅模式更像一种利用婚介中心,比如a在婚介中心订阅了某一类的人群,如果b发布了该类的信息,那么a会收到b发布的信息。如果按照结构来说,观察者模式与发布订阅者模式不是一个设计模式,后者比前者多一个婚介中心的中间调度,但如果按照作用来说,两个设计模式是一样的,他们所完成的功能一样,所以用哪

2021-08-22 15:23:17 165

原创 webpack全面知识点【持续更新】

webpack.config// webpack基于nodejs平台 模块儿化默认采用commonjsconst HtmlWebpackPlugin = require("html-webpack-plugin");const MiniCssExtracPlugin = require("mini-css-extract-plugin");const cssMinimizerWebpackPlugin = require("css-minimizer-webpack-plugin");const

2021-08-11 22:56:56 66

原创 关于webpack5打包图片不报错但是也不显示问题

我在使用 webpack : "^5.49.0"这个版本的时候,使用url-loader处理图片打包,这时候打包输出会有两个图片文件,一个是打包后的图片,一个图片内容是引入刚才的这个图片,比如他的内容是最后导致打包图片不报错,但是也不显示,查阅官网后,发现该问题是由于webpack5版本太新,官方推荐使用asset module 资源模块替换loader转自官网:asset/resource 发送一个单独的文件并导出 URL。之前通过使用 file-loader 实现。asset/inline 导出

2021-08-09 22:01:45 1689 4

原创 vue3中子组件改变props

周所周知vue的props是单向数据流,可以从父组件中改变传往子组件的props,反之则不行,所以在vue2时,用.sync修饰符搭配配合$emit可以实现子组件改变props,如下//父组件中 <Toast :show.sync="shows" clickPropus title="标题" okValue="取消" closeValue='确定' info="内容,内容内容内容内容内容内容内容内容内容内容内容内容"

2021-05-10 16:20:14 8694 1

原创 vue2与vue3的双向绑定原理

vue2与vue3的双向绑定写法不同 vue使用Object.defineProperty来劫持对象属性 而vue3使用Proxy代理来实现双向绑定。vue2: <div class="data"></div> <label>vue2:</label> <input type="text" class="dataInput" /> var data={} Object.defineProperty(data,"value

2021-05-07 18:20:56 1127

原创 关于javascript中es6新增的symbol类型的简单认识

symbol(符号)是原始值,且符号的实例是唯一,不可变的。它的创建方式有些特别,他是原始类型,创建时不需要new,而是用Symbol函数初始化 var s1=Symbol() var s2=Symbol() console.log(s1==s2)//false 由于符号类型的值是唯一的 所以是false var s3=Symbol("peo") var s4=Symbol("peo") console.log(s3==

2021-04-23 11:28:20 90

原创 javascript的生成器函数与生成器

我们普通的函数在运行中是一次性的完成函数体内的语句,而生成器函数可以中途暂停执行 也可以恢复执行 他的声明方式是: function* f() { //...函数体 } var scq1=f()//声明一个生成器生成器有一个next()方法用来返回一个保持内部状态的生成器对象,比如:{value: 5, done: false},其中value是返回的值,done是生成器函数是否执行完成,里面的关键字yield类似于return,但和return有很大的

2021-04-22 11:36:47 177 1

原创 详解javascript中的原型链、__proto__、prototype与constructor

__proto__是对象拥有的一个属性,由于函数也是对象,所以函数也有该属性,他指向他的构造函数的原型,比如 function People(name, age) { this.name = name; this.age = age; } People.prototype = { eat: function () { console.log(this.name + "在吃饭"); },

2021-04-21 11:37:40 77

原创 关于javascript函数式编程的初步理解

javascript不是一门函数式编程语言,但是可以在其中应用函数式编程技术函数式编程的思想核心:将运算过程写成一连串的函数调用计算结果首先函数式编程要保证函数是纯函数,纯函数是指不包含任何副作用,每次输入的值永远得到唯一的输出的函数,比如://纯函数function add(x,y){ return x + y}//不纯函数 外界的min影响了该函数的输出var number = 1;function add2(x){ return x + min}//不纯函数 输出的

2021-04-19 10:49:07 177

原创 关于javascript中call、apply、bind的用法以及模拟bind方法

首先,call与apply的主要作用是让对象能以方法的方式调用函数,有什么用呢,就是对象的方法里面的this指向的是该对象而函数中的this指向的是window,所以改变了this的指向,下面来一个简单的例子 // call与apply是改变this指向 是对象为了以方法的方式调用函数 this指向为括号内第一个参数对象 var name = "李白"; function info(age) { console.log(this.name + "--" + age);

2021-04-18 16:48:36 100 2

原创 javascript数组方法详解

数组的方法详解 // 数组方法 var a = [1, 2, 3, 4, 5]; console.log(a.join()); //1,2,3,4,5 console.log(a.join("")); //12345 var a = new Array(10); console.log(a.join("-")); //--------- 九个- var a = [1, 2, 3, 4, 5]; console.log(a

2021-04-16 17:22:32 81

原创 javascript对象的getter与setter理解与应用

在es5中,属性可以由方法替代,就是getter与setter,由他俩定义的属性叫做“取存器属性”。我们做一个简单的取存器属性: var f = { //声明存取器属性是定义同名的函数 且不用function而使用set与get _x:1, get x() { return this._x; }, set x(val) { this._x=val }, }

2021-04-16 11:41:07 195

原创 react v16后PropType报错问题

react v15之前使用 import React, {PropTypes} from 'react';导入PropTypes,在react v16以后 PropTypes被单独分离出来使用import PropType from 'prop-types';引入

2020-06-19 10:30:59 345

原创 浏览器自动旋转图片问题的解决方式

我们在上传拍摄照片的时候 由于手机拍摄角度问题,照片有orientation属性存储旋转角度,在显示照片时,html标签不会对旋转做处理,会导致照片自动旋转了,而使用浏览器打开,由于浏览器会对旋转属性做处理,所以看到的图片是正常的比如浏览器中html中解决的方式有两个 第一种就是最简单的 给img加入属性image-orientation: from-image 这样就可以让html的照片不再旋转,不过有一些兼容性问题 可以在传送门这里看第二种就是比较麻烦的解决方式了 使用...

2020-05-22 17:57:18 3968

原创 The Gradle failure may have been because of AndroidX ...flutter迁移AndriodX库问题

方法一:将使用到AndroidX库的插件降级到他没有迁移AndroidX的版本方法二:打开as,在flutter的Android文件夹右键打开如图,等待build条加载完,然后点击Migrate to AndroidX,弹出框(勾选是否备份)确认之后点击点击Do Refactor就可以 因为我迁移过了 所以会按钮灰色,ok!这时候打包 如果出现Android dependency ‘an...

2019-12-05 11:22:17 465

原创 vuex的用法

import Vue from 'vue';import Vuex from 'vuex';Vue.use(Vuex); const state={ //要设置的全局访问的state对象 showFooter: true, changableNum:0 //要设置的初始属性值 };const getters = { //实时监听state值的变化...

2019-10-24 10:55:23 103

原创 算法:用js实现贪婪算法(覆盖问题)

适合了解该算法的人理解// 贪婪算法(覆盖问题) var obj = { one: ["a", "b", "r", "s", "q"], two: ["a", "g", "t", "b", "s", "q", "r"], three: ["a"], four: ["p", "c", "b", "n"], fi...

2019-09-10 18:18:46 460 2

原创 算法:用js代码实现狄克斯特拉算法(乐谱换钢琴)

适合了解该算法的人理解 // 所有路径 var obj = { "乐谱": { "黑胶唱片": 5, "海报": 0 }, "海报": { "低音吉他": 30, "架子鼓": 35 }, "黑胶唱片": { "低音吉他": 15, "架子鼓": 20 }, "低音吉他": { "钢琴": 20 }, ...

2019-09-10 13:18:09 1484

原创 flutter安卓打包出现Gradle task bundleRelease failed with exit code 1

Gradle task bundleRelease failed with exit code 1的意思是你出现了错误,但是没有给你说明错误原因 这是因为你的gradle与gradle-warp版本过高造成的将buidle.gradledependencies {classpath ‘com.android.tools.build:gradle:3.2.1’}回退到3.2.1gradl...

2019-09-06 10:51:40 3274

原创 在vscode中给flutter安卓移动应用设置签名

在android/app/build.gradle 中的开头加入def keystorePropertiesFile = rootProject.file("key.properties")def keystoreProperties = new Properties()keystoreProperties.load(new FileInputStream(keystorePropertie...

2019-09-02 12:56:21 1235

原创 关于VUE2.0中v-if使用数组内的条件动态判断无法生效判断

在使用v-if控制元素显示隐藏时候,如果判断条件是数组中的元素,再一开始页面渲染显示正常,可以用数组内的变量来控制v-if元素,但是以后通过方法直接改变数组内变量却不能影响v-if控制的元素显示隐藏。你可以使用 this.selectList.push("564"); this.selectList.pop();先往数组增加一个元素,再删除,这样再改变数组内变量 v-if就可以被影响。...

2019-08-14 12:09:30 19928 8

原创 flutter的BottomNavigationBar的item数量大于3显示白色

如果你的BottomNavigationBar的item数量大于3,那么必须设置 type: BottomNavigationBarType.fixed,否则会出现颜色变白,文字消失等问题

2019-07-26 12:59:02 751

原创 夜神模拟器运行flutter花屏,线条问题

在用夜神模拟器运行flutter时候如果出现这种问题,也许是你使用圆角属性,也许是你使用按钮组件,导致出现这样的问题,解决方案是将显卡渲染模式设置成兼容模拟即可,结果如下ok~...

2019-07-26 11:40:54 2649

原创 flutter显示Error: No pubspec.yaml file found.

打开项目总文件夹运行,不要打开上一级目录运行F:\fluterapp\hellow_horld(项目名)这里打开F:\fluterapp 不要在这里打开

2019-07-25 10:50:49 9205

原创 关于web在安卓,IOS混合开发中时,web的具体操作

在进行web与安卓,iOS混合开发时,由于业务需求,需要web与原生相互调用方法。当安卓,IOS调用web方法时候,如果没有用Vue框架或者其他JS框架,那么web不需要额外操作,若是你使用了Vue框架,那么,你要在vue生命周期函数mounted时候,将你要递给原生的方法挂在带windows上,例如: mounted() { window.onNativeNetworkRespons...

2019-07-23 12:55:59 660

原创 从执行环境与作用域链深入理解闭包

网上看过很多闭包的介绍,很多都是写一个函数内包含一个函数,这样原本外层不能访问函数内的数据,使用闭包以后就可以访问内层函数内的数据,虽然大概是懂了,但是原理还不是很清楚,最近在javascript高级程序设计一书中了解到了执行环境与作用域链,对闭包又有了深一步的了解。执行环境定义了变量或者函数有权利访问其他数据,决定他们行为,每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保...

2019-07-03 11:46:27 121

原创 JS7种方式创建对象详解(下)

一开始我了解到上篇博客的各种创建方式,我以为很完美了,殊不知只是冰山一角,BUT!,使用原型模式有个重大的问题,function Person() { } Person.prototype={ arr:['one','two'] } var p1 = new Person var p2 = ...

2019-07-02 13:16:24 89

原创 JS7种方式创建对象详解(上)

ECMA-262 把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”创建对象最简单的方式就是创建一个Object实例,然后给这个实例加上属性与方法,如:var person=new Object()person.name='小红'person.run=function(){ console.log("跑起来")}发展到以后,程序员为了减轻工作量,创建对象开...

2019-07-02 11:33:04 156

原创 关于JS的垃圾收集机制

读了JavaScript高级程序设计启发很多,从中了解了JS的垃圾收集机制JS不同于C,C++等语言,他的垃圾回收机制不需要开发者专门去考虑他有两种垃圾回收方式:1,引用计数:它的含义是标记每个值被引用的次数,当你声明了一个变量,并且给他赋值一个引用类型的数据,那么他的引用次数加1,这个值又赋值另外一个变量,那么他的引用次数再加一,相反,如果包含该引用的变量被赋值另外的值,那么他的引用次数减...

2019-07-01 18:20:08 174

原创 JS实现继承之最常用的组合继承

使用构造函数方法和原型链方法都不能很好的实现继承,他们各有优势,也各有劣势,如果把他们组合在一起,是不是可以各取所长,取长补短呢?答案是可以的,这就是组合继承function Person(skin){this.skin=skin}Person.prototype.run=function(){console.log(“跑起来”)}function Chinese(native,sk...

2019-07-01 11:12:12 316

原创 JS实现继承之不可取的原型链方式继承

说到JS原型链方式继承,首先要谈到原型链,有这样一个规则:“如果要引用对象的属性现在对象内部找这个属性,如果找不到,然后在该对象的原型里去找这个属性”,那么,我们将子构造函数的原型指向到父构造函数,那么是不是实现了继承的功能呢?function Animals(age){this.age=age}Animals.prototype.run=function(){console.log(‘...

2019-07-01 11:06:17 84

原创 JS实现继承之不可取的构造函数方式继承

先创建两个构造函数function Person(age) {this.age=age}Person.prototype.id=‘123’function student(age,id) {Person.call(this,age,id)//call方法的意思是:第一个参数指代对象引用调用者的方法属性,即this(student的实例对象)引用Person的方法属性,借此实现继承}...

2019-06-28 19:08:34 190

原创 一行css代码实现rem,不再使用js实现rem

一直以为rem的实现是靠JS实现,网上的rem.js五花八门,少的10多行代码,多的甚至上百行,其中一个在使用过程中在安卓和苹果中的大小居然不一样,苹果被缩小了二倍。。。。最近发现只要一行css代码就与五花八门的rem.js作用一样:html{font-size: calc(100vw/6.5)}拿到650px设计稿以后,这样算下来按照设计稿实际大小除以100就是rem的大小了,简单实用...

2019-06-27 18:51:51 2631 4

空空如也

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

TA关注的人

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