const

Vue-cli2.0 + webpack4.0 项目结构及内容详细分析

筅森魡賤 提交于 2020-03-01 22:31:08
总体结构 安装了node, webpack 、vue-cli 等工具之后,打开VS Code控制台 vue init webpack <Project Name>命令创建了基于vue-cli2.0的项目 1、build文件夹: 1.1、build.js 'use strict' require('./check-versions')() //调用版本检查 process.env.NODE_ENV = 'production' //将环境配置为生产环境 const ora = require('ora') //npm包 loading插件 const rm = require('rimraf') //npm包 用于删除文件 const path = require('path')//npm包 文件路径工具 const chalk = require('chalk')//npm包 在终端输出带颜色的文字 const webpack = require('webpack')//引入webpack.js const config = require('../config')//引入配置文件 const webpackConfig = require('./webpack.prod.conf')//引入生产环境配置文件 // 在终端显示loading效果,并输出提示 const

30s源码刨析系列之函数篇

别来无恙 提交于 2020-03-01 21:42:10
前言 由浅入深、逐个击破 30SecondsOfCode 中函数系列所有源码片段,带你领略源码之美。 本系列是对名库 30SecondsOfCode 的深入刨析。 本篇是其中的函数篇,可以在极短的时间内培养你的函数式思维。 内容根据源码的难易等级进行排版,目录如下: 新手级 普通级 专家级 正文 新手级 checkProp const checkProp = (predicate, prop) => obj => !!predicate(obj[prop]); const lengthIs4 = checkProp(l => l === 4, 'length'); lengthIs4([]); // false lengthIs4([1, 2, 3, 4]); // true lengthIs4(new Set([1, 2, 3, 4])); // false (Set uses Size, not length) const session = { user: {} }; const validUserSession = checkProp(u => u.active && !u.disabled, 'user'); validUserSession(session); // false session.user.active = true; validUserSession

H5定位终极解决方案

。_饼干妹妹 提交于 2020-03-01 17:48:01
H5 定位终极解决方案 背景 做一个 H5 的微商城,主要在微信内,但也要考虑到其他浏览器。其中,首页需要根据当前用户的经纬度找到距离最近的门店并展示。前端需要做的工作就是获取用户的经纬度然后查询后台接口并渲染页面。 目标与分析 我们的目标是经过封装之后,只需要调用一个方法就可以拿到返回的位置信息。 我们需要做的事情是,针对不同的端(微信 H5 和其他浏览器环境)封装不同的类,再通过一个方法通过 UA 区分,调用不同环境对应的类获取位置。 在微信内部,经过反复的实践之后,不论是通过原生的 HTML5 定位,还是通过第三方 ( 如百度或腾讯地图 ) jsapi 获取位置,不仅定位时间长,甚至经常出现定位失败的情况,严重影响用户体验,尤其对于大部分信息流都依赖于用于位置的商城首页来说,是完全无法接受的。所以在微信内我们只有微信 sdk 这一种选择; 而对于浏览器端,通过第三方的地图 jsapi 或定位组件,可以稳定且较快速地获取位置信息,为了与微信内尽量保持一致,我们选择的是腾讯地图 jsapi 。 解决方案 Talk is cheap, show me the code. 废话不多说,直接上代码: 1. 在浏览器中,通过腾讯地图 jsapi 获取位置 1.1 在项目的 html 模版文件中引入腾讯地图 jsapi <!-- index.html --> <script charset

H5定位终极解决方案

♀尐吖头ヾ 提交于 2020-03-01 16:54:59
H5定位终极解决方案 背景 做一个H5的微商城,主要在微信内,但也要考虑到其他浏览器。其中,首页需要根据当前用户的经纬度找到距离最近的门店并展示。前端需要做的工作就是获取用户的经纬度然后查询后台接口并渲染页面。 目标与分析 我们的目标是经过封装之后,只需要调用一个方法就可以拿到返回的位置信息。 我们需要做的事情是,针对不同的端(微信H5和其他浏览器环境)封装不同的类,再通过一个方法通过 UA 区分,调用不同环境对应的类获取位置。 在微信内部,经过反复的实践之后,不论是通过原生的 HTML5 定位,还是通过第三方(如百度或腾讯地图) jsapi 获取位置,不仅定位时间长,甚至经常出现定位失败的情况,严重影响用户体验,尤其对于大部分信息流都依赖于用于位置的商城首页来说,是完全无法接受的。所以在微信内我们只有微信 sdk 这一种选择; 而对于浏览器端,通过第三方的地图 jsapi 或定位组件,可以稳定且较快速地获取位置信息,为了与微信内尽量保持一致,我们选择的是腾讯地图 jsapi。 解决方案 Talk is cheap, show me the code. 废话不多说,直接上代码: 1. 在浏览器中,通过腾讯地图jsapi获取位置 1.1 在项目的 html 模版文件中引入腾讯地图 jsapi <!-- index.html --> <script charset="utf-8"

Effective C++ 条款2 尽量用const、enum、inline替换#define

眉间皱痕 提交于 2020-03-01 13:02:48
为什么不要使用宏: 1、对于宏变量而言 # define ASPECT_RATIO 1.653 上面的宏定义中:ASPECT_RATIO可能从未被编译器看到,因为在开始编译之前它就已经被预处理器给替换掉了。在编译出错时,看到的编译错误信息直接是1.653,而不是ASPECT_RATIO,如果宏是别人定义在头文件中的话,可能会非常的疑惑。 (1)我们可以用const常量来替换#define,分为两种情况 定义常量指针: const char * const authorName = "Scott meyers" ; //注意两个const的意义: //第一个const表示authorName指向的内存中的内容是常量,但是可以修改authorName使其指向别的内存 //第二个const表示authorName是一个常量指针,不可以修改authorName使其指向别的地址。 定义class专属常量: 要注意的是const常量不会被改变,因此整个类保留一份实体就可以了,所以注意将它用static修饰。例如: class GamePlayer { private : static const int num = 5 ; int scores [ num ] ; } (2)enum替换#define 由于编译器坚持必须在编译期间知道数组的大小,如果这个时候你的编译器不允许"static

2019南昌网络赛G. tsy's number

旧时模样 提交于 2020-03-01 12:24:56
题意: \(\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n\frac{\phi(i)*\phi(j^2)*\phi(k^3)}{\phi(i)*\phi(j)*\phi(k)}\phi(gcd(i,j,k))\) ,1e4组询问,每次给 \(n(1<=n<=1e7)\) . 题解:由 \(\phi(x)\) 的性质 \(x=p_1^{k_1}*p_2^{k_2}*...*p_n^{k_n}\) , \(\phi(x)=p_1^{k_1-1}*(p_1-1)*p_2^{k_2-1}*(p_2-1)...*p_n^{k_n-1}*(p_n-1)\) , \(\phi(x^2)=p_1^{2*k_1-1}*(p_1-1)*p_2^{2*k_2-1}*(p_2-1)...*p_n^{2*k_n-1}*(p_n-1)\) . \(\phi(x^2)=x*\phi(x)\) . \(\phi(x^3)=x^2*\phi(x)\) . 原式化为: \(\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^nj*k^2*\phi(gcd(i,j,k))\) \(=\sum_{d=1}^n\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^nj*k^2*\phi(d)[gcd(i,j,k)==d]\) \(=\sum_{d=1}^n\phi

Codeforces1313B.Different Rules 构造1700

杀马特。学长 韩版系。学妹 提交于 2020-03-01 11:19:59
# include <bits/stdc++.h> using namespace std ; typedef long long ll ; const int maxn = 1e5 + 5 ; # define IO ios::sync_with_stdio(false);cin.tie(0); ll n , t , x , y ; int main ( ) { cin >> t ; while ( t -- ) { cin >> n >> x >> y ; ll bad = min ( n , x + y - 1 ) ; //n=4 2 4 //15 24 33 42 51 尽量多的人同名 //11 24 33 42 ll good = 0 ; if ( x + y <= n ) good = 1 ; //n=4 2 2 //22 14 41 33 else { good = min ( x + y - n + 1 , n ) ; } cout << good << " " << bad << endl ; } return 0 ; } 来源: CSDN 作者: 阿晴0219 链接: https://blog.csdn.net/qq_40423146/article/details/104587714

abs,max,min

≯℡__Kan透↙ 提交于 2020-03-01 11:19:35
#include <iostream> //abs template <long x, typename enabled=void> struct tabs { const static long value = x; }; template <long x> struct tabs<x,typename enable_if_c<(x < 0)>::type> { const static long value = -x; }; //max template <long x, long y, typename enabled=void> struct tmax { const static long value = x; }; template <long x, long y> struct tmax<x,y,typename enable_if_c<(y > x)>::type> { const static long value = y; }; //min template <long x, long y, typename enabled=void> struct tmin { const static long value = x; }; template <long x, long y> struct tmin<x,y,typename enable_if_c<(y <

05-ObjectArx-创建文字

元气小坏坏 提交于 2020-03-01 10:17:30
1.实体类中添加文字和多行文字 CwEntity.h static AcDbObjectId CreateText(const AcGePoint3d &ptInsert,const ACHAR *text,AcDbObjectId style=AcDbObjectId::kNull,double height=3.0,double rotation=0); static AcDbObjectId CreateMText(const AcGePoint3d &ptInsert,const ACHAR *text,AcDbObjectId style=AcDbObjectId::kNull,double height=3.0,double width=20); CwEntity.cpp AcDbObjectId CwEntity::CreateText(const AcGePoint3d &ptInsert,const ACHAR *text,AcDbObjectId style/*=AcDbObjectId::kNull*/,double height/*=3.0*/,double rotation/*=0*/) { AcDbText *pText=new AcDbText(ptInsert,text,style,height,rotation); return