您好,登錄后才能下訂單哦!
對react-native全局進行配置,對內置對象原型鏈增加方法,增加常用全局方法.
每次新建react-native項目之后都會發現有一些很常用的方法在這個項目中也會用到,有些對全局的配置(禁用模擬器上顯示黃框,release發布版本中時console打印失效等).這些如果在新項目中在搞一次的話的確是很麻煩,所以我就將其封裝成了這個庫.
github地址: https://github.com/geek-prince/react-native-gp-utils
npm地址: https://www.npmjs.com/package/react-native-gp-utils
{{TOC}}
npm install react-native-gp-utils --save
首先導入插件
0:非侵入式:每個要用到的方法的文件中都要導入指定的工具類,并以工具類.方法名
的方式調用方法.
-- 優點:不會占用任何一個全局變量和任何一個內建對象(Array,String對象等)的prototype原型鏈屬性,不會造成全局變量污染
-- 缺點:每個要使用的文件都要導入相應的庫文件,不方便
工具類.方法名
方式調用方法,內建對象以arr.unshiftFromIndex
的形式調用.方法名
方式直接調用方法,內建對象以arr.unshiftFromIndex
的形式調用.導入庫->設置配置選項(可選)->自定義各個庫文件名(可選,在侵入式等級1中使用)->給出侵入式等級初始化
import GPUtils from 'react-native-gp-utils';
GPUtils.configs={yellowBoxOn:true}; //這里設置打開警告提示黃框
//這里表示將CommonUtils,ArrayUtils工具類的名稱分別自定義為CU,AU,沒給出的按默認的工具類的名稱.
GPUtils.namesMap={CommonUtils:'CU',ArrayUtils:'AU'};
// let {CommonUtils,ArrayUtils}=GPUtils.initWtihInvadeScale(0);
// 也可以向下面這樣為之自定義名稱
let {CommonUtils:CU,ArrayUtils:AU}=GPUtils.initWtihInvadeScale(0);
GPUtils.initWtihInvadeScale(1); //自定義名稱在上面第3步
GPUtils.initWtihInvadeScale(2); //完全侵入,不支持自定義名稱(因為每個方法名都會成為全局變量)
|:-----------:|:-----------:|:-----------:|
|配置項|說明|默認值|
|yellowBoxOn|指定警告黃框(即在打印warn警告信息時,模擬器先放出現的警告黃框)是否開啟|false:關閉(系統默認是開啟)|
|releaseLogOn|指定是否在release發布版本中打印log的信息(release版本中系統默認是不會將console.log打印除去的,但是又不可能發布前特地刪一次所有注釋,所以直接導入庫就行了,默認就會在release版本清除log打印)|false:關閉release版本中的打印|
方法的四種類型,下面會有解釋
所有方法的詳細介紹在下面,這里先用其中幾個方法介紹一下調用方式
normal:普通方法.(以CommonUtils中的loop方法(統一管理循環,遍歷的方法)為例)
//按照上面方法導入之后
CommonUtils.loop(10,(i)=>{console.log(i)}); //輸出0到9
//可以自定義別名導入,這時的調用方式就位(所有方法類型都可以自定義別名,侵入式1也一樣,下面就不累贅寫以別名方式調用的內容了)
let {CommonUtils:CU}=GPGlobal.initWtihInvadeScale(0);
CU.loop(10,(i)=>{console.log(i)});
//和上面侵入式0調用方式一樣,只是會占用對應的全局變量
loop(10,(i)=>{console.log(i)}); //直接方法名調用
baseOnInvadeScale類型.(以ArrayUtils中的unshiftFromIndex方法(將數組中指定索引的元素移動到最前面去)為例)
let arr=[1,2,3,4,5];
ArrayUtils.unshiftFromIndex(arr,1,3); //結果為[2, 1, 3, 4, 5] 將所因為3的元素移到最前面
let arr=[1,2,3,4,5];
arr.unshiftFromIndex(1,3); //因為是數組原型鏈上的方法,所以直接這樣調用,而且相對于侵入式0的滴啊用方法,也少了第一個參數(即當前這個數組),
both類型.(以DateUtils中的getDateDiff方法(計算兩個日期時間之間的差值)為例)
let startTimeStr='2017-11-11 11:11:11';
let endTimeStr='2017-11-12 10:10:10';
DateUtils.getDateDiff(startTimeStr,endTimeStr); //結果為1
//侵入式1提供兩種方法,一種是普通方法,調用方式就和上面的侵入式0的調用方式一樣;一種是原型鏈上的方法(向下面這樣調用)
let startTimeStr='2017-11-11 11:11:11';
let date=DateUtils.getDateObj(startTimeStr); //這個方法用于通過字符串,時間戳獲得一個日期對象,date此時就為日期對象,詳情看下面的介紹.
let endTimeStr='2017-11-12 10:10:10';
date.diff(endTimeStr); //直接通過這種原型鏈方法的形式調用,為了簡便,在原型鏈中的方法為diff,both類型方法具體普通方法與原型鏈方法一不一致,看具體方法中的說明.
//普通方法和侵入式2在normal:普通方法的調用相同
//原型鏈方法和上面侵入式1的調用方式相同
onlyProto類型.(以NumberUtils中的toFloatStr方法為例)
let num=18.12345;
num.toFloatStr() //結果為"18.12"
為了方便,下面沒有特別說明都以侵入式等級2為例講解,比較簡單的方法就不給出示例了
toStr(obj)
toStr({})
// 返回"[object Object]"
判斷當前數據的類型的一些列方法:
isNumber(obj)
isString(obj)
isBool(obj)
isArray(obj)
isObj(obj)
isDate(obj)
isRegExp(obj)
getNewObj(obj)
let arr=[1,2,3,4,5];
let copyArr=getNewObj(arr);
copyArr===arr
// 返回false,得到一個至完全相同單地址不同的數組
loop(obj,callBack)
//對指定范圍進行循環
loop(10,(i)=>{console.log(i)}) //輸出0到9
//對數組進行循環
let arr=[1,2,3,4,5,6,7];
loop(arr,(i,k)=>{console.log(i,k)});//輸出數組中的每一個索引與其對應的值
//對對象進行循環
let obj={a:10,b:20,c:30};
loop(obj,(k,v)=>{console.log(k,v)})//輸出對象中的每一個鍵值對
//loop的回調函數中break,continue不可用,但是可以用return做出break,continue,return的操作
//break操作(比如,到5時退出,這時只需要return 1(這里的1可以用任何一個無意義的,不是undefined的值就行)即可)
loop(10,(i)=>{
if(i===5){return 1}
console.log(i);// 打印出0到4
});
//continue操作(比如,到5時跳過此次循環,進行下一次循環,只需要return undefined即可)
loop(10,(i)=>{
if(i===5){return undefined}
console.log(i);// 打印出0-4,6-9
});
//return操作(比如返回i值,像正常return一樣返回即可,該返回值則為loop方法的返回值,可以拿到返回值后做其他操作,也可以再繼續將該返回值再次return出去)
let result=loop(10,(i)=>{
if(i===5){return i}
console.log(i);// 打印0到4
});
console.log(result);//打印5
//可以繼續return出去,這樣就和正常for循環時的return一樣了
function test() {
return loop(10,(i)=>{
if(i===5){return i}
console.log(i);// 打印0到4
});
}
let result=test();
console.log(result);//打印5
getBool(obj)
getFuncName(args)
function Test() {
console.log(getFuncName(arguments));
}
// 打印出Test
isNumeric(strNum,maxDecimalNum=null,ifTrim=true,positive=false)
isNumeric('123.6765')// 結果true
isNumeric('123.6765',2)// 結果false
isNumeric(' -234.67 ',2,)// 結果true
isNumeric(' -546.12 ',2,false)// 結果false
isNumeric(' -123.67 ',2,true,true);// 結果false
isNumeric(123.67,2,true,true);// 結果true
numToFixedLenStr(num,len=2,char='0')
numToFixedLenStr('8') //結果為"08"
numToFixedLenStr('18',4) //結果為"0018"
numToFixedLenStr('18',4,'*') //結果為"**18"
numToFixedLenStr(18,4,'*') //可以是數字
js精確的加減乘除(js對浮點數的運算會存在問題,無論加減乘除,所以加入這些方法).
這些方法在NumberUtils和MathUtils中都被加入到Number對象和String對象的原型鏈中了,名稱分別為add,sub,mul,div,詳情看相應的方法說明.
方法中除了可以傳數字,也可以傳字符串類型的數字
accAdd(arg1,arg2)
12.4249+6.8 //結果為19.224899999999998
accAdd(12.4249,6.8) //結果為19.2248
accAdd('12.4249','6.8') //傳入參數也可以是字符串類型的數字,結果同上
accSub(arg1,arg2)
10.3-9.2 //結果為1.1000000000000014
accSub(10.3,9.2) //結果為1.1
accMul(arg1,arg2)
0.7*8.1 //結果為5.669999999999999
accMul(0.7,8.1) //結果為5.67
accDiv(arg1,arg2)
5.67/8.1 //結果為0.7000000000000001
accDiv(5.67,8.1) //結果為0.7
dealWithFloatStr=(strNum,toFixed=2,type='round',inputType='both',returnType=true)
dealWithFloatStr('12.3456') //結果為"12.35"
dealWithFloatStr('12.3456',1) //結果為"12.3"
dealWithFloatStr('12.3456',1,'up') //結果為"12.4"
dealWithFloatStr('12.3456',3,'sub') //結果為"12.345"
dealWithFloatStr('12.3456',3,'sub','num') //結果為"12.3456"
dealWithFloatStr(12.3456,3,'sub','num',false) //結果為12.345
一些常用屬性:
w
h
isios
一些常用api的簡單封裝:
openUrl(url)
openPhone(phoneNum)
setClipboard(test)
get(url,args={})
get('http://baike.baidu.com/api/openapi/BaikeLemmaCardApi?scope=103&format=json&appid=379020&bk_key=%E9%93%B6%E9%AD%82&bk_length=600',)
.then((jsonData)=>{
console.log(jsonData);
})
.catch((error)=>{
console.log(error);
});
post(url,bodyData,headers={})
//以'Content-Type': 'application/json'方式發送請求時
post('http://baike.baidu.com/api/openapi/BaikeLemmaCardApi',
{scope:103,format:'json',appid:379020,bk_key:'銀魂',bk_length:600})
.then((jsonData)=>{
console.log(jsonData);
})
.catch((error)=>{
console.log(error);
});
//以'Content-Type': 'application/x-www-form-urlencoded'方式發送請求時,需要給出第三個參數headers
post('http://baike.baidu.com/api/openapi/BaikeLemmaCardApi',
'scope=103&format=json&appid=379020&bk_key=銀魂&bk_length=600',
{'Content-Type': 'application/x-www-form-urlencoded'})
.then((jsonData)=>{
console.log(jsonData);
})
.catch((error)=>{
console.log(error);
});
一些適配相關的方法:
setFontSize(fontSize)
isPhoneNum(str)
isEmail(str)
pushRegExpKeyToArr(obj,reg)
let arr=['ro123ot','root','fdhfi','raew'];
pushRegExpKeyToArr(arr,/ro.*ot/);
// 返回["ro123ot", "root"]
// 如果傳入參數為對象,則返回的數組中的元素是傳入對象鍵(key)中符合正則的的
getRandom(num1,num2)
getRandomNumStr(num1,num2)
getRandomFromArr(arr)
getRandomFromArrWithWeight(arr,weightArr)
let arr=['第一個數','第二個數','第三個數','第四個數'];
let weightArr=[1,2,3,4];
//loop是該庫中的一個方法用于統一管理循環的方法(上面有講解)
loop(10,()=>{
let random=getRandomFromArrWithWeight(arr,weightArr);
console.log(random); //這樣'第一個數','第二個數','第三個數','第四個數'輸出的概率就分別是十分之一,十分之二,十分之三,十分之四
});
getRandomStr(num=4,type='all',ifEq=true)
getRandomStr(16,'all',true)
// 結果 "7a314W55nupLV8P4" (16位的既有數字又有字母的隨機數,且數字和字母出現概率相同)
getRandomPhone()
內建對象的工具類部分:
contains(value,allEqual=true)
deleteValue(value,allEqual=true,deleteAll=true)
let arr=[1,2,3,4,5,2,3,6,1,3,2];
arr.deleteValue(3); //結果 [1, 2, 4, 5, 2, 6, 1, 2] ,將多有3的元素都刪除了
arr.deleteValue(2,true,false) //結果 [1, 4, 5, 2, 6, 1, 2] ,只刪除了第一個2的元素
arr.deleteValue(2).push(100); //可以對其進行鏈式操作
spliceOne(index)
sum()
let arr=[1,2,3,4,5,2,3,6,1,3,2,'12','6',1.1,'6.8']
arr.sum() //結果為57.9
移動數組元素的幾個方法:
unshiftFromIndex(index)
let arr=['現在最新的內容','現在第二新的內容','現在正準備點擊之后變成最新的內容','現在最后的內容'];
arr.unshiftFromIndex(2)
//結果為["現在正準備點擊之后變成最新的內容", "現在最新的內容", "現在第二新的內容", "現在最后的內容"]
arr.unshiftFromIndex(2).unshiftFromIndex(3) //可以對其進行鏈式操作
pushFromIndex(index)
let arr=[0,1,2,3,4,5];
arr.pushFromIndex(2); //結果為[0, 1, 3, 4, 5, 2]
moveToIndexFromIndex(fromIndex,toIndex)
let arr=[0,1,2,3,4,5];
arr.moveToIndexFromIndex(1,3) //結果為[0, 2, 3, 1, 4, 5]
deepCopy()
let arr=[0,1,2,3,4,5];
let arr1=arr.deepCopy(); //arr1與arr內容完全相同
arr1===arr //返回false,不是同一個對象
eachToFloat(args)
//下面的結果都是JSON.stringify()后的輸出
let arr=[10,123,'123',[832.123,'1234.123','dsadf12'],{a:10.123,b:'123.86',c:'123dsa'}];
let finalArr=arr.eachToFloat({ifChangeArr:false});
//上面arr結果沒變,finalArr結果為"[10,123,"123.00",[832.12,"1234.12","dsadf12"],{"a":10.12,"b":"123.86","c":"123dsa"}]"
finalArr=arr.eachToFloat({ifChangeArr:false,ifRecursion:false});
//上面finalArr的結果為"[10,123,"123.00",[832.123,"1234.123","dsadf12"],{"a":10.123,"b":"123.86","c":"123dsa"}]"其中的對象和數組就沒有參與處理
finalArr=arr.eachToFloat({ifChangeArr:false,toFixed:1,type:'up',outputType:'str');
//上面finalArr的結果為"["10.0","123.0","123.0",["832.2","1234.2","dsadf12"],{"a":"10.2","b":"123.9","c":"123dsa"}]"
arr.eachToFloat({toFixed:3,type:'sub',inputType:'str'});
//上面這樣就會直接改變數組中相應的值,這樣就不用外界用變量接收了.arr的結果為"[10,123,"123.000",[832.123,"1234.123","dsadf12"],{"a":10.123,"b":"123.860","c":"123dsa"}]"
getDateObj(date)
getDateObj('2012-12-12 00:00:00'); //結果成功生成對象Wed Dec 12 2012 00:00:00 GMT+0800 (CST)
getDateObj(1455241600000); //可以是時間戳的Int
formatDate(date,formatStr='yyyy-MM-dd hh:mm:ss')
formatDate('2012-12-12') //結果為"2012-12-12 00:00:00"
formatDate('2012-12-12 12:12:12','yyyy/MM/dd hh:mm') //結果為"2012/12/12 12:12"
formatDate(1455241600000,'yyyy/MM/dd hh:mm') //可以是Int類型的時間戳,結果為"2016/02/12 09:46"
let date=new Date();
formatDate(date,'yyyy/MM/dd hh:mm') //可以是日期對象
date.format('yyyy/MM/dd hh:mm') //因為是both類型的方法,所以可以通過這種形式來調用
addOrSubDate(date,num,dayOrMouth='day',addOrSub='add',ifChangeDate=true,isBehindZero=false)
let dateStr='2012-12-12 12:12:12';
addOrSubDate(dateStr,1); //結果為Thu Dec 13 2012 12:12:12 GMT+0800 (CST)
addOrSubDate(dateStr,1,'month','sub'); //結果為Mon Nov 12 2012 12:12:12 GMT+0800 (CST)
let timestamp=1455241600000;
addOrSubDate(timestamp,2,'hour','sub') //也可以是Int類型的時間戳,結果為Fri Feb 12 2016 07:46:40 GMT+0800 (CST)
let date=new Date();
addOrSubDate(date,2,'hour','sub') //也可以是date對象,結果中改變了原來的date對象
addOrSubDate(date,2,'day','sub',false,true) //這樣就不改變原來的日期對象了.結果為Sat Oct 20 2018 00:00:00 GMT+0800 (CST)
date.addOrSubDate(2,'day','sub',false,true) //因為是both類型的方法,所以可以通過這種形式來調用
addOrSubDateFormat(num,formatStr='yyyy-MM-dd',date='',dayOrMouth='day',addOrSub='add',isBehindZero=false)
addOrSubDateFormat('2012-12-12 12:12:12',1); //結果為"2012-12-13"
let date=new Date();
date.addOrSubDateFormat(3); ////因為是both類型的方法,所以可以通過這種形式來調用
getDateDiff(startTime, endTime, diffType='day',ifAbs=true)
let startTimeStr='2017-11-11 11:11:11';
let endTimeStr='2017-11-12 10:10:10';
getDateDiff(startTimeStr,endTimeStr); //結果為1
getDateDiff(startTimeStr,endTimeStr,'hour'); //結果為23
let date=new Date();
date.diff(endTimeStr,'month',false); //因為是both方法,所以也可以以這種方式調用.結果為-11
add()
sub()
mul()
div()
let num=5.67;
num.div(7)
toFixedLenStr(len=2,char='0')
let num=18;
num.toFixedLenStr(4,'*') //結果為"**18"
toFloatStr(toFixed=2,type='round')
let num=18.12345;
num.toFloatStr() //結果為"18.12"
num.toFloatStr(3,'up') //結果為"18.124"
toFloat(toFixed=null,type='round')
let num=18.12345;
num.toFloat(3,'up') //結果為18.124
toDate()
let num=1455241600000;
num.toDate() //結果轉化為日期對象 Fri Feb 12 2016 09:46:40 GMT+0800 (CST)
objEachToFloat(obj,args={})
//下面的結果是JSON.stringify()后的輸出
let obj={a:10.12341,b:{a:'10.12412',b:true,c:[10,23.0123,'dsad']},c:'40.1'};
objEachToFloat(obj,{toFixed:3,type:'up'}) //結果為"{"a":10.124,"b":{"a":"10.125","b":true,"c":[10,23.013,"dsad"]},"c":"40.100"}"
getSubObj(obj, subObjDatas,empty=null)
getSubObj(obj,'class.people.name')
這種方式通常用在子對象鍵名確定,固定,不變的情況getSubObj(obj,['class','people','name'])
. 或者let a='class',b='people',c='name';getSubObj(obj,[a,b,c]);
這種方法通常在子對象鍵名根據變量改變時的情況,使用后面這種形式調用let obj={class:{otherProple:{name:'zhangsan'}}};
obj.class.people.name //這樣直接調用就會報錯
getSubObj(obj,'class.people.name') //用該方法就返回null(也可以自定義不存在時的返回值)
let a='class',b='people',c='name'; //模擬鍵名會根據情況改變時
getSubObj(obj,[a,b,c]); //也可以用這種方式調用
gqlObjToString(obj,ifNull=false,num=0)
let obj={a:10.12341,b:{a:'10.12412',b:true,c:[10,23.0123,'dsad']},c:'40.1',d:null,e:undefined,f:'*CONST*'};
gqlObjToString(obj);
//結果為
/*
"{
a:10.12341
b:{
a:"10.12412"
b:true
c:[
10
23.0123
"dsad"
]
}
c:"40.1"
f:CONST
}"
*/
subObjDataToObj(obj,dealWithSameSubKey='both',separator='_',allNameKeyArr=null,supKeyArr=[],sameKeyArr=null)
let obj1={a:{test:123},b:{c:{test:456}},d:{c:{test:789}},e:{f:{test:135}}};
subObjDataToObj(obj1) //結果為 {a_test: 123, b_c_test: 456, d_c_test: 789, e_f_test: 135}
注意字符串是不能改變的,所以下面的方法如果是和改變字符串相關的都是生成的另一個新的字符串,要用另一個變量來接,元字符串不會發生改變
add()
sub()
mul()
div()
'5.67'.div(7)
toFixedLenStr(len=2,char='0')
let numStr='18';
numStr.toFixedLenStr(4,'*') //結果為"**18"
isNumeric()
'123.123dsa'.isNumeric()
,具體用法,看CommonUtils中的方法介紹)toFloatStr(toFixed=2,type='round')
"18.12345".toFloatStr() //結果為"18.12"
"18.12345".toFloatStr(3,'up') //結果為"18.124"
toFloat(toFixed=null,type='round')
"18.12345".toFloat(3,'up') //結果為18.124
toDate()
'2012-12-12 00:00:00'.toDate() //結果轉化為日期對象 Wed Dec 12 2012 00:00:00 GMT+0800 (CST)
getSecStr(leftNum=0,rightNum=0,middleNum=0,secChar='*')
let str='1383838438';
str.getSecStr(2,3); //結果為"13****438"
str.getSecStr(2,3,8); //結果為"13*******438"
getSecStr(str,2,3,8); //結果同上,也可以以普通方法調用
insertSpace(numStr,spacePositions=4,loop=true)
//下面的信息都是亂寫的
let bankCard='6212262201023557228';
bankCard.insertSpace(); //結果為"6212 2622 0102 3557 228",這是用于銀行卡號的情況.
let IDNum='123456199507281234';
IDNum.insertSpace([6,8,4]); //結果為"123456 19950728 1234",這是用于×××時的情況.
let phone='13383838438'; //結果為"133 8383 8438",這是用于手機號時的情況.
let random='213649213892749217392147236294';
random.insertSpace([2,4,3]) //結果為"21 3649 213 89 2749 217 39 2147 236 29 4",默認會循環
random.insertSpace([2,4,3],false); //結果為"21 3649 213 892749217392147236294",不循環時
insertSpace(random,[2,4,3],false) //因為是both類型的方法,所以也可以通過普通方法的形式調用
indexdWithNum(char,n)
let str='root123rootdsahkroot123';
str.indexdWithNum('root'); //結果為0
str.indexdWithNum('root',3); //結果為16
insertToIndex(inserts,indexs)
let str='I you';
str.insertToIndex(' love',1); //結果為"I love you"
str='I you,I you';
str.insertToIndex(' love',[1,7]) //結果為"I love you,I love you"
str.insertToIndex([' love',' hate'],[1,7]) //結果為"I love you,I hate you"
getStrCount(strOrReg)
let str='root123rootdsro132otahkroot123';
str.getStrCount('root'); //結果為3
str.getStrCount(/ro.*?ot/g) //結果為4,注意,得加上修飾符g,不然會返回1
trimFunc(char=' ',type='lr')
let str=' I love you ';
str.trimFunc(); //結果為"I love you"
str.trimFunc('all') ;//結果為"Iloveyou"
str='---I--Love--you---';
str.trimFunc('l','-') //結果為"I--Love--you---"
trimFunc(str,'l','-') //因為是both類型,也可以以普通方法的形式調用
toUpperFirst(ifOtherLower = true)
let str='I lovE yoU';
str.toUpperFirst(); //結果為"I Love You"
str.toUpperFirst(false); //結果為"I LovE YoU"
其他方面的工具類部分:
formatFileSize(size)
formatFileSize(1236821); //結果為"1.18MB"
formatFileSize(1236821213); //結果為"1.15GB"
getBaseName(path)
getBaseName('somedir/to/test.js') //結果為"test.js"
getDirName(path)
getDirName('somedir/to/test.js') //"somedir/to"
getFileType(filePath,haveDot=false)
getFileType('somedir/to/test.js') //結果為"js"
pathJoin(dirPath,fileName)
pathJoin('somedir/to','test.js'); //結果為"somedir/to/test.js"
logFuncName(args)
function Test() {
logFuncName(arguments);
}
打印出***********************************Test***********************************
function Test() {
logFuncName(arguments,'App','-',20);
}
打印出--------------------App--------------------Test--------------------
getLorem(wordCount=30)
getLorem() //結果為"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nkiuaoxuidbej hdkgnsmf nztqmp ngxsuxmxryubb kkuuegcnj npwtikvax jeitrhdtm, hjmmflmcqf qwhynmxw. Wpt ddoqkvpeaa dymecfpet, mqwhgngubpzbu. Asmthth jlsef fkznuhorv uwexlhzx owpyryoxxww eugqf cdefdkeatlii, ppcfamku. Gqpslqmmyg?"
getLorem(15) //指定單詞數目為15.結果為"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sckyejb hdrko, zqkiuuudb iwuvzwpqll, ycvceyrlgadw yuzwcqjezdsq qnxho,."
getDataFromNetTest(pageLen=20,page=1,ms=3000,max=100)
getDataFromNetTest()
.then((res)=>{console.log(res)});
//這里結果為3秒鐘后打印出一個長度20的數組,數組中每條元素就是一個對象,該對象里面
//{index:當前數據的索引(即對幾條數據),name:一個隨機生成的名字,age:隨機年齡,phone:隨機電話號碼,text:隨機的一串文字(上面的getLorem方法)}.
//這里的對象格式現在是固定的,后面可能會將其改為可以從參數中傳遞來.
整理了好幾整天終于整理完了,現在方法還比較少,不過還是算都比較常用的.
如果大家覺得我的組件好用的話,幫到你的話,歡迎大家Star,Fork,如果有什么問題的話也可以在github中想我提出,謝謝大家的支持.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。