自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mossbaoo的博客

不积跬步无以至千里,不积小流无以成江海。

  • 博客(95)
  • 资源 (2)
  • 收藏
  • 关注

原创 js 数组for循环请求接口,并把返回数据放进新数组

用一个数组中的每个值去循环请求接口,获取对应数据放进新数组。要在循环中使用async、await,可以使用for…of或者for 循环,while循环等,不能使用foreach,因为在forEarch里执行await会并行的。# 有了for循环 为什么还要forEach?## forEach的介绍 #

2022-11-18 12:01:33 110

原创 uni-app 下载文件并保存到手机(带进度条)

uniapp下载文件并保存到手机(带进度条),结合uni.downloadFile,uni.saveFile,uni.openDocument,实现功能

2022-10-20 15:55:40 1760 1

原创 uni-app 第二次进入页面时子组件的mounted不执行

当页面A引入了子组件后,子组件需要运行一些方法,但是mounted只能在初次渲染时执行,第二次进入页面就不执行了。方法:通过父组件的onShow调用子组件里的方法,实现更新子组件的值代码(父组件):<drag-button :isDock="true" :customBar="true" ref="dragButton"></drag-button>onShow() { this.$refs.dragButton.init();},代码(子组件):data() {

2022-04-18 17:22:07 1612

原创 uni-app 子组件中onLoad、onShow里的方法不执行

原因:在uniapp中,只有应用生命周期和页面生命周期,子组件是没有应用周期的。所以onLoad、onShow都不存在。方法:如果想在渲染子组件时运行一些方法,可以用vue自身的生命周期mounted

2022-04-15 10:56:20 5830

原创 如何使用 Git Flow 创建多个修补程序分支hotfix

在使用git的hotfix时可能会报错:To work with multiple hotfixes at the same time, configure Git config option 'gitflow.multi-hotfix=true'.原因是已存在一个hotfix,那么如何创建第二个hotfix分支呢?方法一在终端运行命令git config --add gitflow.multi-hotfix true方法二手动编辑你的 git 配置:文件目录[ .git ->

2022-01-08 17:59:41 332

原创 ElementUI 自定义可全选或全不选的checkbox-group多选框组

在使用ElementUI的 “indeterminate 状态” 的checkbox时,感觉有所限制,所以觉得自定义一个可全选或全不选的checkbox-group多选框组。全部代码:<template> <div class="app-container"> <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="allChange">全选<.

2021-11-20 15:29:05 1209

原创 vue 解决报错[Vue warn]: Computed property “checkAll“ was assigned to but it has no setter.

在vue项目中使用到计算属性computed 时报错:[Vue warn]: Computed property "checkAll" was assigned to but it has no setter.原因是:计算属性computed :checkAll 主动赋值了,但是它并没有定义 set 方法。解决办法:对该计算属性添加 get 和 set 方法data() { return { dataList: [], }},compu.

2021-11-20 14:59:19 2159

原创 vue2 简单说明 $emit $on $off 的使用,防止$on多次触发

介绍1.$emit:触发当前实例上的事件。附加参数都会传给监听器回调。2.$on:监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。3.$off:移除自定义事件监听器。场景从详情页回到列表页时,把详情页的参数带回到列表页。也可以说是在列表页监听并接收详情页在该事件的回调。方法1. 先在项目中新建一个js文件(eventbus.js),内容为:import Vue from 'vue'e...

2021-11-11 10:28:32 676

原创 Element中table表格自定义表头添加有点击事件的按钮,并传输自定义参数

介绍最近用到 element 的表格的render-header 属性,官方似乎没具体说明怎么使用,然后自己找资料实现了满足需求的解决方案。需求1: 在表头放一个带点击事件的按钮需求2: 点击按钮时需要传输自定义参数(用来区分点击的是哪一列)本文章主要以render-header 进行扩展使用。主要代码html:<el-table-column label="城市" align="center" :render-header="(h, obj) =&g...

2021-11-09 17:34:47 2881

原创 CSS 调换两个元素的显示顺序

HTML:<div class="container"> <div class="No_1">????...</div> <div class="No_2">????...</div> <div class="No_3">????...</div></div>CSS:.container { display: flex;}.No_1 { order:

2021-10-29 10:42:25 934

原创 Git 将一个分支的修改同步到另一个分支

场景:此时分支A和分支B的代码一致,我在分支B修改了代码,需要同步到分支A方法:git checkout A 切换到分支Agit merge B 把分支B的代码合并到分支Agit push 把分支A的代码推送上去

2021-09-27 10:45:29 2814

原创 Vue 自定义模态对话框弹窗

模态对话框弹窗效果:父组件(应用页面)主要代码:<template> <view class="app-container"> <modal-dialog showText="确定要取消收藏吗?" :isShowDialog="isDialog" @cancel="isDialog = false" @confirm="confirmDelete"></modal-dialog> </view>.

2021-09-10 11:10:16 1410

原创 vue/uniapp 如何让页面的 onLoad 在 onLaunch 之后执行

app.vue里的 onLaunch 中如果有异步方法(比如:登录),返回结果可能会在页面的 onLoad 之后,但 onLoad 中的方法需要登录回调的结果。为了让页面的 onLoad 在 onLaunch 之后执行,解决方案:1. main.js 添加代码Vue.prototype.$onLaunched = new Promise(resolve => { Vue.prototype.$isResolve = resolve;})2. 在 App.vue 的 onLau

2021-07-03 11:34:38 2707 4

原创 Vue使用echarts,解决“TypeError: Cannot read property ‘init‘ of undefined”报错

按照官方的步骤:(如果你只为解决方法,请跳过前面步骤)安装echarts依赖npm install echarts --save在 main.js 引入import echarts from 'echarts'Vue.prototype.$echarts = echartsECharts.vue绘制图表<div id="myChart" style="width: 400px;height:400px;"></div><script>ex

2021-05-14 15:12:51 262

原创 JS/JQ 给对象动态添加属性,把表单的所有input值添加进对象

JSvar obj = {};button.onclick = function(){ var name = document.getElementById('name').value; var phone = document.getElementById('phone').value; obj[name] = phone; }JQvar obj = {};$("#button").click(function(){ var name = .

2021-04-29 16:40:53 915

原创 JQuery 判断所有input的值是否为空

$("#submit").click(function(){ $("input[type='text']").each(function () { if ($(this).val() == "") { console.log('请填写' + $(this).data('text')); return false; } })});

2021-04-29 16:30:15 2331

原创 uni-app 如何重启app

plus.runtime.restart();结束!

2021-04-28 18:43:45 1889

原创 uniapp - APP判断是否开启位置信息服务&&判断是否授权位置信息权限

当我们在使用uni.getLocation的API时,会发现用户并没有开启微信信息服务或者没有授权位置信息权限,而导致回调fail,那么就需要去判断并引导用户前往开启。判断是否开启位置信息服务(安卓Android)checkOpenGPSService() { let systemType = uni.getSystemInfoSync().platform; // 安卓 if (systemType === 'android') { var context = plus.android.

2021-04-28 18:41:06 5849

原创 vue/uniapp - 返回上一页并onLoad刷新数据

在uni中,返回页面是不会触发onLoad方法的;如果我们只想在特定情况下返回上一页才需要刷新数据,那么用onShow的话,那刷新就太频繁了;这时候,可以用$emit和$on去解决。比如说,从详情页(detail.vue) 回到 列表页(list.vue):详情页(detail.vue):methods:{ back() { uni.$emit('refreshData'); uni.navigateBack({ delta: 1 }) }}列表页(list.vu

2021-04-21 16:56:43 7864 4

原创 JQ 通过选择器查询指定元素的标签名

/** * @param {*} selector 选择器 * @param {*} targetEle 查询目标标签名 * @returns 如果匹配返回true,如果不匹配返回该标签名 */function checkEle(selector, targetEle) { let html = $(selector).html(); let thisEle = html.substring(html.indexOf('<')+1, html.indexOf(' '));

2021-04-12 10:49:23 180

原创 css 如何让一个div垂直水平居中(非弹性盒子)

该文章方法是在非弹性flex盒子的情况下使用。使用场景多为页面弹窗,需要垂直水平居中。·在未知div的宽度情况下,建议使用方法一和方法二方法一div{position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);}方法二div{position: absolute; left: 0; top: 0; bottom: 0; right: 0; margin: auto;}·在已知div的宽度情况下

2021-02-25 13:46:44 248

原创 Js 修改对象数组里的对象属性名

假设,我们从后端取回来的Json对象数据中,有某些属性名不是我们想要的,就需要给它们重新命名。方法:// array为数组,old_name为修改前属性名,new_name为修改后属性名JSON.parse(JSON.stringify(array).replace(/old_name/g, 'new_name')) 解释:JSON.stringify() 把json对象 转成 json字符串使用正则的 replace() 方法替换属性名JSON.parse() 再把json字符串 转成

2021-02-04 15:48:49 3141 1

原创 Js 判断数组对象中是否有某个值

方法/** * 判断数组对象中是否有某个值 * @author mossbaoo * @param {*} array 要查询的数组 * @param {*} attr 要查询的字段 * @param {*} val 要查询的字段值 */function findElem(array, attr, val) { for (var i = 0; i < array.length; i++) { if (array[i][attr] == val) { .

2021-01-27 10:06:44 7518

原创 bootstrapTable开启fixcolumn冻结列后无法点击checkbox的问题

在bootstrapTable中,当开启fixcolumn冻结列之后,其实就是把冻结的那几列复制出来,生成到.fixed-columns的div里面。所以原本table里面的事件已经失效了,需要重新绑定一下。关键代码:define(['jquery', 'bootstrap', 'backend', 'table', 'form',], function ($, undefined, Backend, Table, Form,) { Table.api.bindevent_orignal = Ta

2021-01-18 18:26:06 434

原创 Js 查找数组对象中的值

在示例数组中,如果需要通过某对象的名称来或者对应对象的id。简单来说,就是获取小明的id值。var array = [ { name: "小明", id: 1}, { name: "小吉", id: 2}];方法:let obj = array.find(o => o.name === '小明');console.log(obj.id);...

2021-01-13 10:08:15 5925 2

原创 css-去除input框里面的默认背景颜色

input输入框在浏览器里面会有输入历史记录的功能,当你选择输入记录的时候,输入框会出现蓝色的背景颜色这时候需要用css处理一下input{ -webkit-box-shadow: 0 0 0 1000px white inset;}

2021-01-09 10:27:40 4270 1

原创 debugx5.qq.com清除微信浏览器缓存

debugx5.qq.com清除微信浏览器缓存。您使用的内核非x5内核,说明你使用的不是x5内核,解决办法:打开网页`debugmm.qq.com/?forcex5=true`

2021-01-07 00:22:29 3506 1

原创 UnhandledPromiseRejectionWarning: TypeError: loaderContext.getResolve is not a function

安装并使用`less-loader`之后npm run dev 运行报错 "UnhandledPromiseRejectionWarning: TypeError: loaderContext.getResolve is not a function"原因:`less-loader` 版本过高,安装低版本即可解决npm install less-loader@5.0.0 -D...

2021-01-06 16:00:44 184

原创 Mac前端基础开发环境

Mac前端基础开发环境Node下载地址:https://nodejs.org/en/download/选择 macOS Installer 下载即可HomebrewHomebrew是MacOS平台下的软件包管理工具。官网地址:https://brew.sh/在终端下安装homebrew:/usr/bin/ruby -e "$(curl -fsS...

2019-08-08 15:35:32 230

原创 git 将代码提交到另一个新仓库

换一种说法就是,从一个git仓库拷贝到另一个git仓库。做法:以镜像推送的方式上传代码到新的仓库地址git push --mirror http://...(目标仓库地址)

2019-07-12 09:54:07 8200

原创 js 冒泡排序和快速排序

冒泡排序通过相邻两个元素之间的比较和交换,使较大的元素逐渐从前面移向后面(即升序),就像水底下的气泡一样逐渐向上冒泡,所以被称为“冒泡”排序。var arr = [3, 4, 5, 1, 7, 2, 8, 9, 6, 0];function arrayRank(arr) { var num = null; for (var i = 0; i < arr.length...

2019-07-10 16:51:18 596

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

首先简述一下什么是数据双向绑定:数据双向绑定,即当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化。vue实现双向数据绑定的原理,其实就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值get和设置属性值set的操作来实现的。代码演示defineProperty的用法:// 第一个参数:定义属性的对象var obj =...

2019-07-10 15:55:49 291

原创 es6 字符串模板拼接

字符串拼接是在日常开发中必不可少的一个环节。注意:字符串可以用单引号'',或者""双引号,出于方便大家理解,文章以下内容统一使用单引号''!如果只是一个字符串和一个变量拼接,使用传统的字符串拼接就没什么问题,只需要一个+号和一个''号就好了;但是有时候会有多个字符串与变量拼接,那么就会有一大堆的+号和''号,造成代码不美观。传统的字符串拼接var name = 'moss';var ...

2019-07-01 15:03:58 3247

原创 js 实现颜色值格式转换 rgb和十六进制的转换

本文章是以prototype原型的方式,给string字符串类型添加方法,用于实现颜色值格式的转换。如果你不用原型方法,那么你只要借鉴实现方法就好了。RGB转换为16进制String.prototype.colorHex = function () { // RGB颜色值的正则 var reg = /^(rgb|RGB)/; var color = this;...

2019-06-24 14:22:42 24808 3

原创 在vue项目中使用ECharts

这个示例使用vue-cli 脚手架搭建安装echarts依赖npm install echarts --save创建图表可选择全局引入 或者 按需引入全局引入会将所有的echarts图表打包进去,会导致体积过大,个人建议使用按需引入。全局引入main.js// 引入echartsimport echarts from 'echarts'...

2019-06-12 11:43:35 239

原创 js 判断手机操作系统(ios或Android)

使用javascript判断手机操作系统(ios或Android),介绍小米的miui浏览器如何切换浏览器标识,并解决“在小米浏览器中判断手机操作系统的结果是ios/iPhone”的问题。

2019-05-27 15:16:45 7714

原创 jQuery 判断鼠标从哪个方向进入元素

$(".item").bind("mouseenter mouseleave", function(e) { var w = $(this).width(); var h = $(this).height(); var x = (e.pageX - this.offsetLeft - (w / 2)) * (w > h ? (h / w) : 1); var y = (e.page...

2019-05-20 11:11:02 445

原创 vue子组件与父组件之间的传值

【vue子组件与父组件之间的传值】在子组件与父组件之间的通信中,无论是子组件向父组件传值还是父组件向子组件传值,他们都有一个共同点就是有中间介质,子向父的介质是自定义事件,父向子的介质是props中的属性。抓准这两点对于父子通信就好理解了。

2019-04-28 11:55:05 1379

原创 vue加scoped后就无法修改vant的UI组件的样式

有时候UI组件提供的默认的样式不能满足项目的需要,就需要我们对它的样式进行修改,但是发现加了scoped后修改的样式不起作用。解决方法:使用深度选择器,将scoped样式中的选择器“深入”,即影响子组件<style scoped> .a >>> .b { /* ... */ }</style>以上的代码会编译成:.a[data-v-f3f...

2019-04-25 16:59:18 7186 7

原创 vue移动端项目如何真机测试

在做vue移动端项目的时候,我们都会想着在手机上真机测试一下自己做出来的效果,那么如何实现呢?1. 查看IP地址: WIN+R,输入cmd回车,打开命令提示符,输入ipconfig, 查看IP地址2. 在项目中找到 '/config/index.js' 文件中的host 字段,默认值是'localhost',修改成自己的IP地址'192.168.x.x'3. 运行项...

2019-04-25 10:03:11 1896 1

微信小程序购物车功能 含样式

原生框架的微信小程序购物车功能 含样式。 对应博客文章:https://blog.csdn.net/mossbaoo/article/details/83031438

2021-06-29

移动端自适应布局-rem.js

使用rem单位实现自适应布局,轻松掌握移动端开发。用法简单,比如普遍的设计图宽度为750px,那么在css中设置为7.5rem即可实现宽度100%

2018-09-19

空空如也

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

TA关注的人

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