真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

flutter2020,flutterer

【Flutter】利用Future封裝出js中的Promise

前端的同學(xué)對 Promise 肯定都很熟悉,而 Future 便是 dart 中 Promise ,但方法名稱和使用方式還是有些許的差異的。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了惠安免費(fèi)建站歡迎大家使用!

下面我們嘗試,利用 Future 封裝出js中我們熟悉的 Promise 。

使用示例

Promise.all , Promise.race , Promise.resolve , Promise.reject

Promise.allSettled 方法接受一組 Promise 實(shí)例作為參數(shù),包裝成一個新的 Promise 實(shí)例。只有等到所有這些參數(shù)實(shí)例都返回結(jié)果,不管是 fulfilled 還是 rejected ,包裝實(shí)例才會結(jié)束。該方法由 ES2020 引入

Promise.any() 方法接受一組 Promise 實(shí)例作為參數(shù),包裝成一個新的 Promise 實(shí)例。只要參數(shù)實(shí)例有一個變成 fulfilled 狀態(tài),包裝實(shí)例就會變成 fulfilled 狀態(tài);如果所有參數(shù)實(shí)例都變成 rejected 狀態(tài),包裝實(shí)例就會變成 rejected 狀態(tài)。該方法目前是一個第三階段的 提案 。

Promise.any() 跟 Promise.race() 方法很像,只有一點(diǎn)不同,就是不會因為某個 Promise 變成 rejected 狀態(tài)而結(jié)束。

順便把 延遲函數(shù) 也封裝一下,畢竟毫秒延遲的使用頻率是最高的。

flutter 無法ios模擬器運(yùn)行

2020年1月14日

1.flutter clean后無法模擬器解決

嘗試解決:

刪除

定位分析是輸出包名不一致導(dǎo)致。

解決:名字錯誤導(dǎo)致,如下改法即可。

備注:

修改步驟按如下步驟,不然下圖2 Run Debug 還會不是Runner.app名字,導(dǎo)致一直報錯

之后查看這里的命名是否正常:

第二步:最后在改這個plist

如果您發(fā)現(xiàn)本文對你有所幫助,如果您認(rèn)為其他人也可能受益,請把它分享出去。

2020年前端最火的技術(shù)是什么?

我認(rèn)為的2020年前端開發(fā)者最應(yīng)該掌握的一些比較火爆的技術(shù)與知識點(diǎn)。

1,前端框架和語言層面

9月份 Vue3.0 發(fā)布,聲稱對 TypeScript 有著更好的開發(fā)體驗,通過從不同框架級別 TS 支持上,我們可以看出社區(qū)的整個風(fēng)向從2019年的大家都去學(xué)習(xí)應(yīng)用 TS,變成了大家如何把 TS 用的更好這個方向上來了。

所以我認(rèn)為今年 TypeScript 的火熱程度還是應(yīng)該排名很靠前的,我今年也使用 TypeScript 重構(gòu)了 Daruk 的服務(wù)框架推出了2.0版本,讓 TS 開發(fā)者擁有更好的 TS 開發(fā)體驗。

接下來就是兩大重磅框架的更新歷程對比,Vue3 前面說了一句。而 React 也在十月也發(fā)布了 React 17 的 release 版本。這兩大主流框架的頻繁更新,也說明了社區(qū)和作者都在一同演化。

在 Vue 3中除了更好的支持 TS 外,還更新了Composition API。而 React 17 主要是集中精力在升級體驗上,雖然沒有新的 Feature 但是提升了和解決了很多之前版本潛在的問題。

要說哪個最火還是要看個人實(shí)際的使用場景和喜好,但是2020年來看還沒有別的框架可以與之一戰(zhàn)。

? ? ?

? ? ? ? 2,大前端相關(guān)技術(shù)棧

今年基于Chromium的微軟edge瀏覽器也已經(jīng)推出。google 在 web 端的發(fā)展產(chǎn)生了對開發(fā)者深刻的影響。Chrome 80+ 也已經(jīng)發(fā)布多個版本,提供了一系列的新特性,比如Core Web Vitals標(biāo)準(zhǔn),Desktop PWA等都值得我們?nèi)リP(guān)注。

? ? ?

? ? ? ? 我們說完了瀏覽器相關(guān)的那點(diǎn)技術(shù)之后,再聊聊大前端相關(guān)的一些技術(shù)實(shí)踐,比如 Flutter。

很多前端在今年已經(jīng)從 web 開發(fā)轉(zhuǎn)型為 Flutter 開發(fā),學(xué)習(xí)和使用 Dart 技術(shù)來構(gòu)建 UI,這是很多大廠的前端工程師正在經(jīng)歷的事情(包括我的部門也在嘗試這個事情),這個趨勢應(yīng)該在未來幾年還會持續(xù)。

客戶端 electron 在今年也有著長足的進(jìn)展,一年內(nèi)多次更新版本一路到了10.1.5。隨著疫情影響,國內(nèi)在線教育的又一波興起。很多桌面軟件,網(wǎng)課軟件都在采用這個技術(shù)來進(jìn)行開發(fā),市場上的崗位也開始變多,electron 技術(shù)可以說在今年也有火的趨勢。

? ? ?

? ? ? ? 然后我們再看看BFF 層,nestjs依然堅挺,越來越多的人開始跳過學(xué)習(xí) express 和 koa 開始學(xué)習(xí)更豐富的 web 框架了,比如 egg 或者我的 daruk,開發(fā)者已經(jīng)在慢慢形成共識,在 web framework 的路上開始越走越遠(yuǎn),裸寫 nodejs web 服務(wù)的時代已經(jīng)開始慢慢褪去。

? ? ?

? ? ? ? 不得不提的還有 serverless 在前端的普及,在2020年到達(dá)了一個新的高潮。阿里云,騰訊云,頭條云等等國內(nèi)的互聯(lián)網(wǎng)廠商也都開始大玩 serverless 概念。從對內(nèi)服務(wù)開始轉(zhuǎn)向?qū)ν夥?wù),普及的勢頭很猛,也有落地的趨勢和場景。今年的 D2同樣也有 serverless 的專場,可見受重視程度非比尋常。

3,工程化提效和個人素質(zhì)提升

再離我們近一些的推動生產(chǎn)力的技術(shù),比如據(jù)我所知在用 CI/CD 和 pipeline 管理上線流程的公司越來越多,這種去年還可以出去吹一吹的東西,今年也逐步變成了業(yè)界標(biāo)配基礎(chǔ)能力,如果不會的同學(xué)可要抓緊學(xué)習(xí)了。

? ? ?

? ? ? ? 2019年前大家都瘋狂吐槽面試刷 medium 題目沒用,而2020年后大家開始默認(rèn)面試某些公司都至少要刷到medium程度的題目。這對很多前端來說是一個心智和素質(zhì)的提升與轉(zhuǎn)變,大家在接觸新技術(shù)的同時,也慢慢發(fā)現(xiàn),前端整個職業(yè)環(huán)境的變化,越來越多的公司對人的整體綜合素質(zhì)要求變高了。

2020-11-18 解決Flutter TextField限制輸入中文問題

項目中存在一個輸入框,只能提交中文字符串,于是使用了如下的方法實(shí)現(xiàn)

但是上線運(yùn)行之后,發(fā)現(xiàn)在iOS原生拼音輸入法中,只能一個字一個字輸入,每次輸入超過一個字就會直接變成拼音字母,并且長度限制在遇到中文拼音輸入法后也會失效

于是通過自定義過濾器的方法,解決了這個問題

關(guān)鍵方法在于判斷當(dāng)前輸入框是否存在未完成的字符串,如果存在,則不做限制,否則根據(jù)參數(shù)進(jìn)行限制

但是屬性 composing 聽說還存在bug,使用的時候要注意,很有可能還有坑等著????

參考:

解決方案:

頓悟:

感謝???? Alex 大神?。?!

2020-05-15 flutter BoxConstraints and layout

在出現(xiàn)布局錯誤時能盡快找到錯誤原因。

以下是對關(guān)鍵內(nèi)容的翻譯和注解。

flutter的布局模型是“一步布局模型”(one-pass layout model),在渲染樹中,向下treewalk傳遞給子 盒約束,然后再向上treewalk將計算好的幾何形狀(比如高度、寬度等)傳遞給父。我理解one-pass layout model就是一遍就將布局計算好。不會多次treewalk去計算布局,或多次重繪(repaint)并多次計算布局。

計算的好的幾何形狀必須符合盒約束的要求。

盒約束有四個值,minWidth,maxWidth,minHeight,maxHeight,符合盒約束的意思就是說 計算出的寬高必須在最大值和最小值之間 。

我猜測,在將盒約束向子傳遞的過程中,子會根據(jù)父的盒約束,設(shè)置自己的盒約束,而不是單純的繼承父的盒約束。稍后結(jié)合Flex布局可以解釋。

盒約束的最小值和最大值相等。因此在tight約束下的子的高寬將等于父的高寬,也就是說子是緊緊(tight)貼著父的。

盒約束的最小值為0,也就是說子可以是小于盒約束最大值的任何值,也就是說子是不緊貼(松的,loose)父的。

盒約束的最大值不是infinite(無窮大)

盒約束的最大值是infinite(無窮大)

盒約束的最小值是infinite(無窮大),他的子的寬或高只能取無窮大。

子的寬高(Size)符合盒約束的要求。

以下摘抄原文檔并翻譯,并加以分析。為了關(guān)注要點(diǎn), 忽略crossAxis方向(水平方向)的處理 。

以下圖為Column布局實(shí)例。

給column布局進(jìn)行了以下6步操作

首先給每個非flex子元素,設(shè)置豎直方向unbounded(無界)的盒約束。結(jié)合圖片,也就是將1、2兩個子設(shè)置好豎直方向無界的盒約束。示例中1和2設(shè)置了高度,因此一共占用高度是5+3=8.

按flex的比例給flex元素分配剩余的空間。因為示例只有一個flex元素,即3號元素,因此將占有剩余全部空間,高度是20-5-3 = 12。

在第二步中分配好空間的flex元素,給他設(shè)置的盒約束不是豎直方向unbounded(給非flex元素設(shè)置的是豎直方向unbounded),而是有界的盒約束,盒約束的maxHeight是12,即第二步中被分配的高度。

水平方向不解釋了。高度設(shè)置完了他去設(shè)置寬度。

Column組件的總高度是由mainAxisSize屬性決定的,如果值是MainAxisSize.max,Column的高度就是Column的盒約束的maxHeight值,示例中我們給Column設(shè)置了高度為20的bounded盒約束,假設(shè)Column.mainAxisSize=MainAxisSize.max,那么Column的高度就是20.如果mainAxisSize=MainAxisSize.min,Column的高度將由其子元素的高度和決定。假設(shè)3號flex元素不設(shè)置成flex元素,而是固定高度為8,那么Column的高度就是5+3+8=16.

設(shè)置子元素的位置,即設(shè)置靠左,靠右,居中,分散等,與本示例關(guān)系不大。

根據(jù)第一步,inner column被outer column設(shè)置了無界(unbounded)的盒約束,Column會緊包c(diǎn)hildren,而inner column的Expanded要撐開以占用inner column的剩余空間,這就沖突了。

解決方案:給inner column設(shè)置有界的盒約束即可。比如給inner column外包一層有高度的Container。

下面這種方案,給inner column包一層Expanded也可以,是因為在outer column中,Expanded會被設(shè)置成有界的盒約束(結(jié)合第三步),因此Expanded就可以向外擴(kuò)展(expand)了。

flutter 性能知識

ModalRoute中的參數(shù)maintainState。其意義為:已經(jīng)不可見(被上面的蓋住完全看不到啦~)的組件,是否還需要保存狀態(tài)。OverlayEntry類源碼中說maintainState設(shè)置為true是昂貴的,但是如果maintainState為false,那當(dāng)不可見時,對應(yīng)的頁面會被銷掉,如果pop回去時重新創(chuàng)建的(State 會跑initState方法),那上個頁面的狀態(tài)就無法保持了。這可能也是MaterialPageRoute默認(rèn)maintainState為true的原因。

這里的saveLayer()是說canvas的saveLayer()方法。一般用于合成特殊效果

可能觸發(fā) saveLayer() 并可能代價高昂的其他小部件:

避免調(diào)用 saveLayer() :


網(wǎng)頁名稱:flutter2020,flutterer
文章分享:http://weahome.cn/article/dssdjij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部