- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 Android合并两个APP的具体做法
需求有两个APP A和B。两个项目相互独立,功能业务逻辑均不同。现在需要实现将两个独立的APP整合成一个APP解决办法:1.创建一个module2.把B APP中以下图片的内容全部复制到新创建的module中3.把module中的AndroidMainfest.xml相关内容去掉,并且把相同的权限去掉4.修改module中的build.gradle例如:fastjson在module中依赖,但是在原来的A中也有依赖,两个版本需一致,或者删除掉module中重复的依赖5.rebuild
2021-04-12 14:33:32
5252
3
原创 iview更换主题颜色及遇到的问题
1. 新建一个less文件,并引入index.less文件,然后定义需要的主题颜色/* 按需导入iview组件*/@import '~view-design/src/styles/index.less';@primary-color:#9370DB;2. 在main.js内引入该less文件即可// 按需导入iview组件import 'view-design/dist/styles/iview.css';import './iview/myTheme/index.less'import
2020-11-12 18:25:33
1323
原创 LeetCode刷题--20.有效的括号(JavaScript版)
题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。//示例 1:输入: "()"输出: true//示例 2:输入: "()[]{}"输出: true//示例 3:输入: "(]"输出: false//示例 4:输入: "([)]"输出: false//示例 5:输入: "{[]}"输出: true
2020-10-30 16:16:21
331
原创 邂逅JavaScript数据结构与算法之栈
2.1 简介数组是一个线性结构,并且可以在数组的任意位置插入和删除元素。而栈和队列就是比较常见的受限的线性结构(只能在一端添加和删除元素)。如下图所示栈的特点为先进后出,后进先出(LIFO:last in first out)。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之称为新的栈顶元素从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素称为新的栈顶元素
2020-10-28 17:06:21
221
原创 Node常用的内置模块(path、fs、events)
4.1 内置模块pathpath模块用于对路径和文件进行处理,提供了很多好用的方法并且在Mac OS、Linux和window上的路径是不一样的Window上会使用\或者\来作为文件路径的分隔符,目前也支持/在Mac OS、Linux和Unix操作系统上使用/来作为文件路径的分隔符4.1.1 path的常见API从路径中获取信息;dirname:获取文件的父文件夹basename:获取文件名extname:获取文件扩展名路径的拼接:如果我们希望将多个路径进行拼接,但是不同的
2020-10-28 10:01:05
276
原创 padStart()和padEnd()方法
padStart和padEnd主要用于字符串的补全str.padStart(targetLength [, padString])str.padEnd(targetLength [, padString])参数(接收两个参数):第一个参数,当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。第二个参数,用于补充的字符串,如果字符串长度过长,则会删除后面的多出的字符串,进行补全。此参数的默认值为 " "适用场景:格式化时间时,个位数补0字符串拼接例子:
2020-10-27 23:45:32
493
原创 ImmutableJS在react中的使用
ImmutableJS对象的特点是只要修改了对象,就会返回一个新的对象,旧的对象不会发生改变1.ImmutableJS的部分APIJavaScript和ImmutableJS直接的转换对象转换为Immutable对象:Map;数组转换为Immutable对象:List;深层转换:fromJSImmutabaleJS的基本操作:修改数据:set获取数据:get2.结合redux使用(1)yarn安装yarn add immutable(2)某个reducer.js中使用,重新设
2020-09-20 00:06:19
337
原创 数组的扁平化:将多维数组变成一维数组
(1)ES6中新增的flat()方法/** * 1.ES6中flat(深度)方法,默认为1; * 使用infinity作为深度,展开任意深度的嵌套数组 */const arr = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10];let newArr = arr.flat(Infinity)console.log(newArr) //[1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9, 11
2020-08-26 22:59:16
434
原创 前端性能优化【vue-cli使用CDN引入】
1. index.html引入:在public文件中的index.html中引入,要注意引入的顺序,vue必须在前面<body> <div id="app"></div> <script src="//unpkg.zhimg.com/vue@2.6.11/dist/vue.min.js"></script> <script src="//unpkg.zhimg.com/vue-router@3.2.0/dist/vue-rou
2020-08-19 20:58:12
1082
2
原创 数组的两种随机排序方法
(1)利用数组自带的sort方法 let array = [1, 2, 3, 4, 5, 6, 7] function foo(arr) { const newArr = [...array] newArr.sort((a, b) => { return Math.random() - 0.5 }) return newArr }这种方法是利用随机出一个正数或者负数来让数组里面的内容两两对比,是正数就是顺序,是负数则
2020-08-19 14:43:24
2791
4
原创 分析一道面试题:array中的空位
以下代码执行后,array 的结果是?let array = [,1,,2,,3];array = array.map((i) => ++i)A:[,2,3,4]B:[NaN,2,NaN,3,NaN,4]C:[1,2,1,3,1,4]D:[null,2,null,3,null,4]正确答案:A解析:在ES5中,forEach(),filter(), reduce(),every()和some()都会跳过空位。map()会跳过空位,但会保留这个值join()和toString()
2020-08-16 18:57:31
296
原创 前端性能优化【vuecli开启gzip压缩以及nginx的配置】
1.安装compression-webpack-pluginnpm install compression-webpack-plugin -D2.vue.config.js配置gzip压缩// 导入compression-webpack-pluginconst CompressionWebpackPlugin = require('compression-webpack-plugin');// 定义压缩文件类型const productionGzipExtensions = ['js', 'c
2020-08-14 22:39:55
750
3
原创 vue中关于$emit和.sync的用法
父组件可以使用props 把数据传给子组件。子组件可以使用 $emit触发父组件的自定义事件而vue中对$emit的定义如下:触发当前实例上的事件。附加参数都会传给监听器回调。vm.$emit( eventName, […args] )参数: {string} eventName [...args]1.Props传递数据components ├── Grandson1.vue // 孙子1 ├── Grandson2.vue // 孙子2 ├── Parent.vue
2020-08-14 09:58:39
1573
原创 分享一道面试题:null和undefined
下面结果为真的表达式是:()A.null instanceof ObjectB.null === undefinedC.null == undefinedD.NaN == NaN解析:C1.instanceof运算符希望左操作数是一个对象,右操作数表示对象的类(初始化对象的构造函数)。如果左侧的对象是右侧对象的实例,返回true,否则返回false。我们使用type of 检测null会被认为是object类型。但是实际上null不是object的实例。而instance of是用来检测是
2020-08-13 11:15:39
1077
1
原创 vue+node+socket.io开发的一个简易聊天室
1.安装nodejs-websocketnpm install nodejs-websocket
2020-08-12 16:16:46
12372
28
原创 微信小程序轮播图宽高计算
1.轮播图外层容器swiper,每一个轮播项swiper-item2.swiper标签存在默认样式width 100%height 150pximage 存在默认宽度和高度 320*240swiper 高度无法实现由内容撑开3.综上,需先根据原图的宽度和高度 等比例给swiper定宽度和高度假定:原图宽度和高度为 640 * 200pxswiper 宽度 / swiper 高度 = 原图的宽度 / 原图的高度则 swiper 高度 = swiper 宽度 * 原图的高度 / 原图的宽度即
2020-08-09 21:16:29
1404
原创 小程序商城实战项目
项目简介:该商城是基于原生微信小程序来实现的。其中包含了登录,分类、购物车、个人中心、首页、搜索、商品详情等页面。话不多说,直接上图首页:商品分类:有商品时的购物车:无商品时的购物车:购物车(删除商品):登录后的个人中心:没有登录的个人中心:搜索商品页面:商品详情页面:商品列表页面:订单查询页面:商品收藏页面:项目地址:https://github.com/aQuanPig/ZZ-Shop如果对您对此项目有兴趣,可以点 “Star” 支持一下 谢谢! _
2020-08-04 21:11:05
17916
58
原创 微信小程序父子组件通信详解
1 父组件向子组件传递数据:1.1 在父组件的文件夹中的.json文件下引入子组件{ "usingComponents": { //"Tab" 是自己定义的组件名称 //"../../components/Tab/Tab" 是组件的路径 "Tab":"../../components/Tab/Tab" }}1.2 在父组件里以标签的形式写入子组件如果需要传值的话,在标签上自定义属性名,属性值要以双花括号保住<Tab tabs="{{tabs}}"/>
2020-07-30 11:47:46
3084
原创 vue个人博客开发记录-使用axios拦截器实现数据加载之前的loading动画显示(四)
1.创建Loading组件<template> <div class="loading"> <ul> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul&
2020-07-22 16:30:52
437
原创 vue个人博客开发记录-实现文章点赞功能(三)
1.后端1.1 增加文章中点赞对应的规则const articleSchema = monoogse.Schema({ categories:[{ type:monoogse.SchemaTypes.ObjectId, ref:Category }], .....省略 //添加点赞对应的规则,关联User(用户表) praise:[{ type:monoogse.SchemaTypes.ObjectId, ref:'User' }]1.2 增加
2020-07-21 18:22:40
2589
原创 vue个人博客开发记录-文件上传&vue-quil-editor&mongo多层查询(二)
1.创建管理员1.1 文件上传处理express 本身是获取不到文件上传的数据,所以需要一个中间件来专门处理中间件 multermulter({dest: './uploadImages'})表示将上传的图片传输到指定文件夹(这里以uploadImages为例,如果没有该文件夹,会自动生成),如果不添加dest属性,这些文件将保存在内存中,永远不会写入磁盘const multer = require('multer')const path = require('path') // 路径
2020-07-17 16:35:30
407
原创 vue个人博客开发记录--后台界面搭建&通用增删改查接口(一)
1. 初始化项目工具安装和环境搭建(后台)npm init -ynpm install express@next --savenpm install mongodb --savenpm i element-ui -S2.基于Element UI的后台管理基础界面搭建2.1 创建分类1.搭建好页面,准备发送请求2.连接数据库//db.jsmodule.exports = app =>{ // 引入第三方模块mongodb并创建一个客户端 const mo
2020-07-17 16:03:41
706
原创 scrapy-redis 分布式爬虫爬取前程无忧的岗位数据
1.爬取思路进入’https://jobs.51job.com/zhongshan/p1/'页面,分页进行爬取,每一页中获取所有招聘岗位详情的URL2.创建项目scrapy startproject pingcd pingscrapy genspider ping 'jobs.51job.com'3. 编辑需要爬取的数据字段import scrapyclass ZhaopingItem(scrapy.Item): # define the fields for your ite
2020-07-12 07:39:22
578
3
原创 深入理解js原型对象
原型(公有属性)1.1 构造函数原型 prototypeprototype ----》原型对象构造函数通过原型分配的函数是所有对象所共享每一个构造函数都有一个prototype属性,指向另一个对象。注意这个prototype就是一个对象,这个对象的所有属性和方法,都会被构造函数所拥有1.2 对象原型 proto__proto__对象原型与原型对象prototype是等价的对象都会有一个属性__proto__指向构造函数的prototype原型对象,之所以我们对象可以使用构造函
2020-06-07 14:56:08
303
1
原创 在vue中实现一个简单的购物车思路
记录一下学习购物车的思路首先把所需要的数据存入vuex中...mapState({cartFoods:'cartFoods',info:'info'});//cartFoods表示购物车上面所显示的食物列表;info表示购物车下面显示的配送费和最低消费,即获取商家信息列表的数据...mapGetters({totalCount:'totalCount',totalPrice:'totalPrice'})//totalCount表示购物车中的食物列表数量,totalPrice表示总价钱其.
2020-05-26 16:37:53
1855
原创 Vue学习笔记——二、指令
2. 指令2.1 插值表达式({{ }})和v-text的两个区别使用插值表达式,在网速较慢的情况下,存在内容闪烁的问题(即直接在页面上渲染{{ 内容 }}),而v-text没有闪烁问题在插值表达式中,可以使用v-cloak解决闪烁问题<style> [v-cloak]{ display:none; }</style>//v-cloak属性在页面渲染完成后会被移除<h2 v-cloak>{{msg}}</h2&g
2020-05-08 18:42:23
185
原创 Vue学习笔记——一、MVVM
1. MVVM//此处 new Vue() 得到的VM实例就是MVVM中的 VM 视图,提供了双向数据绑定的能力const vm = new Vue({ el:'#app', //此处el属性指定的元素就是MVVM中的 V 视图 data:{ //此处的data属性就是MVVM中的 M 视图 msg:'hello' }})MVVM是一种设计思想...
2020-05-07 22:22:42
269
原创 node---express中间件
1.2.1 app.use中间件用法app.use匹配所有的请求方法,可以直接传入请求处理函数,代表接收所有的请求app.use 第一个参数可以省略,省略时表示匹配所有的请求,当传入请求地址时,代表无论什么请求方式,只有是这个地址就接收这个请求// 接收所有请求的中间件app.use((req, res, next) => { console.log('执行了app....
2020-05-07 12:47:18
164
原创 node.js----模块系统的基本认识
4.1 require 是一个方法作用:加载执行模块中的代码在Node中,模块有三种:核心模块:例如fs、http、os等用户自己编写的文件模块(即 js )相对路径必须加 ‘ ./ ‘,不能省略可以省略后缀名在 Node 中没有全局作用域,只有模块作用域(简单来说就是,外部访问不到内部,内部访问不到外部)4.2 模块作用域,如何让模块与模块之间进行通信no...
2020-05-03 18:20:46
139
转载 浅谈async/await
ES7的async/await语法在2016年就已经提出来了,惭愧的是我最近才接触使用,,下面来聊聊解决了什么问题在async/await之前,我们有三种方式写异步代码嵌套回调以Promise为主的链式回调使用Generators但是,这三种写起来都不够优雅,ES7做了优化改进,async/await应运而生,async/await相比较Promise 对象then 函数的嵌套,与 G...
2020-04-23 19:40:48
532
原创 Vue-项目中遇到的知识点--作用域插槽
作用域插槽作用域插槽,我的理解是:第一:在子组件中绑定我们需要的数据第二:从父组件中,通过使用已经注册的子组件标签,然后在属性slot-scope进行定义,从而使用子组件中绑定的数据。<div id="father"> <son> <!-- 2.获取子组件中绑定的数据info --> <...
2020-04-23 15:58:27
242
原创 Vue-项目中遇到的知识点-rules验证规则
学习项目中遇到的知识点一、 data()中使用Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可<el-from>标签要绑定rules属性,即在标签内部声明 rules = "loginFormRules" 双引号内名字可以自己定义,随后在data中声明此为表单验证规则对象&l...
2020-04-22 13:21:42
8273
TestThree2.rar
2019-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人