源碼分析:
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供烏拉特前網(wǎng)站建設(shè)、烏拉特前做網(wǎng)站、烏拉特前網(wǎng)站設(shè)計、烏拉特前網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、烏拉特前企業(yè)網(wǎng)站模板建站服務(wù),十載烏拉特前做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
分析源碼可得,TextField 是有狀態(tài) StatefulWidget,有豐富的屬性,自定義化較高,實踐中需要合理利用各種回調(diào);
1、光標(biāo)的相關(guān)屬性;cursorColor 為光標(biāo)顏色,cursorWidth 為光標(biāo)寬度,cursorRadius 為光標(biāo)圓角;其中 Radius 提供了 circle 圓角和 elliptical 非圓角兩種;
2、textAlign 為文字起始位置,可根據(jù)業(yè)務(wù)光標(biāo)居左/居右/居中等;注意只是文字開始方向;textDirection 問文字內(nèi)容方向,從左向右或從右向左;
3、maxLength 為字符長度,設(shè)置時默認(rèn)是展示一行,且右下角有編輯長度與整體長度對比;與 maxLengthEnforced 配合,maxLengthEnforced 為 true 時達(dá)到最大字符長度后不可編輯;為 false 時可繼續(xù)編輯展示有差別;
4、設(shè)置 maxLength 之后右下角默認(rèn)有字符計數(shù)器,設(shè)置 TextField.noMaxLength 即可只展示輸入字符數(shù);
5、maxLines 為允許展現(xiàn)的最大行數(shù),在使用 maxLength 時內(nèi)容超過一行不會自動換行,因為默認(rèn) maxLines=1,此時設(shè)置為 null 或固定展示行數(shù)即可自動換行;區(qū)別在于 null 會展示多行,而 maxLines 最多只展示到設(shè)置行數(shù);
6、obscureText 是否隱藏編輯內(nèi)容,常見的密碼格式;
7、enableInteractiveSelection 長按是否出現(xiàn)【剪切/復(fù)制/粘貼】菜單;不可為空;
8、keyboardAppearance 為鍵盤亮度,包括 Brightness.dark/light 兩種,但僅限于 iOS 設(shè)備;
9、textCapitalization 文字大小寫;理論上 sentences 為每句話第一個字母大寫;characters為每個字母大寫;words 為每個單詞首字母大寫;但該屬性僅限于 text keybord,和尚在本地更換多種方式并未實現(xiàn),有待研究;
10、keyboardType 為鍵盤類型,和尚理解整體分為數(shù)字鍵盤和字母鍵盤等;根據(jù)設(shè)置的鍵盤類型,鍵盤會有差別;
a. 數(shù)字鍵盤
--1-- datetime 鍵盤上可隨時訪問 : 和 /;
--2-- phone 鍵盤上可隨時訪問 # 和 *;
--3-- number 鍵盤上可隨時訪問 + - * /
b. 字母鍵盤
--1-- emailAddress 鍵盤上可隨時訪問 @ 和 .;
--2-- url 鍵盤上可隨時訪問 / 和 .;
--3-- multiline 適用于多行文本換行;
--4-- text 默認(rèn)字母鍵盤;
11、textInputAction 通常為鍵盤右下角操作類型,類型眾多,建議多多嘗試;
12、autofocus 是否自動獲取焦點,進(jìn)入頁面優(yōu)先獲取焦點,并彈出鍵盤,若頁面中有多個 TextField 設(shè)置 autofocus 為 true 則優(yōu)先獲取第一個焦點;
13、focusNode 手動獲取焦點,可配合鍵盤輸入等減少用戶操作次數(shù),直接獲取下一個 TextField 焦點;
14、enabled 設(shè)為 false 之后 TextField 為不可編輯狀態(tài);
15、decoration 為邊框修飾,可以借此來調(diào)整 TextField 展示效果;可以設(shè)置前置圖標(biāo),后置圖片,邊框?qū)傩?,?nèi)容屬性等,會在后續(xù)集中嘗試;若要完全刪除裝飾,將 decoration 設(shè)置為空即可;
16、inputFormatters 為格式驗證,例如原生 Android 中通常會限制輸入手機(jī)號或其他特殊字符,在 Flutter 中也可以借此來進(jìn)行格式限制,包括正則表達(dá)式;使用時需要引入 package:flutter/services.dart;
a. LengthLimitingTextInputFormatter 限制最長字符;
b. WhitelistingTextInputFormatter 僅允許輸入白名單中字符;如 digitsOnly 僅支持?jǐn)?shù)字 [0-9];
c. BlacklistingTextInputFormatter 防止輸入黑名單中字符;如 singleLineFormatter 強(qiáng)制輸入單行;
分析源碼 RegExp("[/]") 可以設(shè)置正則表達(dá)式;
17、onChanged 文本內(nèi)容變更時回調(diào),可實時監(jiān)聽 TextField 輸入內(nèi)容;
18、controller 文本控制器,監(jiān)聽輸入內(nèi)容回調(diào);
19、onTap 點擊 TextField時回調(diào);
20、onEditingComplete 在提交內(nèi)容時回調(diào),通常是點擊回車按鍵時回調(diào);
21、onSubmit 在提交時回調(diào),不可與 onEditingComplete 同時使用,區(qū)別在于 onSubmit 是帶返回值的回調(diào);
問題小結(jié):
當(dāng) TextField 設(shè)置 enableInteractiveSelection 屬性后長按會出現(xiàn)菜單,默認(rèn)為英文,可通過設(shè)置 Flutter 國際化來處理;
(1)在 pubspec.yaml 中集成 flutter_localizations;
2)在 MaterialApp 中設(shè)置本地化代理和支持的語言類型;
(1)將 maxLength 設(shè)置為 null 僅使用 LengthLimitingTextInputFormatter 限制最長字符;
(2)設(shè)置 InputDecoration 中 decoration 屬性為空;但是底部有空余,只是隱藏而并非消失;
最近不少小伙伴都會留言問,零基礎(chǔ)學(xué)習(xí)前端需要了解哪些知識,小白學(xué)習(xí)Web前端開發(fā)容易嗎?針對大家的疑問,下面,尚學(xué)堂前端學(xué)院給大家介紹一下。
首先,先給大家介紹一下前端工程師到底是做什么的。
他們主要的工作是把UI的設(shè)計圖按照w3c標(biāo)準(zhǔn)做成html頁面,并且用javascript腳本語言實現(xiàn)頁面上的前端互動。互動效果包括,彈出層,頁簽切換,圖片滾動,ajax異步互動。
高級前端工程師還要承擔(dān)前端優(yōu)化的工作,優(yōu)化的知識就會更多一些,比如文件過期Expires,緩存,異步緩存,js和css以及圖片的壓縮等。
前端開發(fā)是一項很特殊的工作,前端工程師的工作說的輕送,看似輕巧,但做起來絕對不是那么的簡單。在開發(fā)過程中涵蓋的東西非常寬廣,既要從技術(shù)的角度來思考頁面的實現(xiàn),規(guī)避技術(shù)的死角,又要從用戶的角度來思考,怎樣才能更好地接受技術(shù)呈現(xiàn)的枯燥的數(shù)據(jù),更好地呈現(xiàn)信息。簡單地說,它的主要職能就將網(wǎng)站的數(shù)據(jù)和用戶的接受更好地結(jié)合在一起,為用戶呈現(xiàn)一個友好的數(shù)據(jù)界面。
前端工程師是一個很新的職業(yè),在國內(nèi)乃至國際上真正開始受到重視的時間不超過5年?;ヂ?lián)網(wǎng)的發(fā)展速度迅猛,網(wǎng)頁WEB1.0到WEB2.0,再到新生的HTML5、CSS3,到現(xiàn)在手機(jī)、3G網(wǎng)絡(luò)等新科技的興起,網(wǎng)頁也由最原先的圖文為主,到現(xiàn)在各種各樣的基于衰前端技術(shù)實現(xiàn)的應(yīng)用、交互和富媒體的呈現(xiàn),更多的信息,更豐富的內(nèi)容、更友好的體驗,已經(jīng)成為網(wǎng)站前端開發(fā)的要求,網(wǎng)站的前端開發(fā)發(fā)生了翻天覆地的變化。網(wǎng)站的開發(fā)對前端的需要越來越重要,但目前前端工程師的需要越來越重要,但目前前端工程師需求大于供給,前端人才非常緊缺。所以高質(zhì)量的前端開發(fā)工程師將會是后五年內(nèi)一個非常熱門的職業(yè),發(fā)展的前景非??捎^。
那么,零基礎(chǔ)小白學(xué)Web前端需要了解哪些知識呢?
如果你是一個剛?cè)腴T的零基礎(chǔ)小白,那你首先肯定要掌握的是前端開發(fā)的基礎(chǔ)知識,相關(guān)的程序語言;HTML、CSS、JauaScript,在頁面的布局時,HTML將元素進(jìn)行定義,CSS對展示的元素進(jìn)行定位,再通過JavaScript實現(xiàn)相應(yīng)的效果和交互。這些知識都是基礎(chǔ),必須熟練掌握,才能進(jìn)行流暢的編寫。
學(xué)程序語言,當(dāng)然是與工具相輔相成的,學(xué)語言的同時,需要掌握的就是開發(fā)工具的使用,對于新手來說,初學(xué)用到的是幾個比較常見的工具:
1,Dreamweaver:,集網(wǎng)頁制作和管理網(wǎng)站于一身的所見即所得網(wǎng)頁代碼編輯器。
2,Sublime,全稱Sublime Text ,是一個主要功能包括拼寫檢查,書簽,完整的 Python API , Goto 功能,即時項目切換,多選擇,多窗口的代碼編輯器
3,HBuilder:是DCloud,推出的一款支持HTML5的Web開發(fā)IDE。
熟悉這些工具之后,你一定對基礎(chǔ)的開發(fā)工作有一定的了解了,這時候要提升自己的能力,就可以學(xué)習(xí)更多工具的使用,比如Bootstrap能給你的Web開發(fā)提供了更時尚的版式,表單,buttons,表格,網(wǎng)絡(luò)系統(tǒng)等。Secureheaders能夠自動實施安全相關(guān)的header規(guī)則,防止XSS、HSTS等攻擊
前端開發(fā)之路不是一成不變的,可能會根據(jù)時代的發(fā)展,軟件的更新,學(xué)的內(nèi)容也有所變化,不過,打好基礎(chǔ),無論學(xué)習(xí)哪方面的知識,都得心應(yīng)手。
簡單的了解之后呢,就是重頭戲了!
前端小白如何學(xué)習(xí)web前端呢?
前端自學(xué)者存在的學(xué)習(xí)誤區(qū):
所學(xué)東西可能已過時
奉為經(jīng)典的的東西已經(jīng)過時,或者已經(jīng)有了更好的替代者,而你獲取信息的渠道有限,消息滯后,導(dǎo)致學(xué)習(xí)內(nèi)容也相對滯后。
2.學(xué)習(xí)方法盲目
看書看不懂就找視頻類教程學(xué)習(xí),覺得教程跟自己的口味不符就另尋他法,因為自己缺少對資源的辨識能力,總是在沒有清晰規(guī)劃學(xué)習(xí)路線的的情況下就盲目學(xué)習(xí),導(dǎo)致無效學(xué)習(xí)時間過長而收獲寥寥。
3、只有理論,缺乏真實項目鍛煉
對技術(shù)的理解停留在理論層次,而缺乏真實企業(yè)項目的歷練,如果沒有相關(guān)實習(xí)或工作經(jīng)歷,對前端崗位具體的責(zé)任劃分和工作流程了解不充分。
如何自學(xué)前端知識:
自學(xué)方法:
作為一個初學(xué)者,你必須明確系統(tǒng)的學(xué)習(xí)方案,我建議一定有一個指導(dǎo)的人,全靠自己學(xué),放棄的幾率非常大,在你對于web前端還沒有任何概念的時候,需要一個人領(lǐng)進(jìn)門,之后就都靠自己鉆研,第一步就是確定web前端都需要哪些內(nèi)容,并且在多少時間內(nèi)學(xué)完,建議時間6個月保底。
2.視頻為主,書為輔。很多初學(xué)者在學(xué)習(xí)前端的時候非常喜歡去買書,但是最后的結(jié)果是什么?看來看去什么都不會寫,所以在這里給大家提醒,書可以看,但是是建立與你已經(jīng)對某個知識點有了具體操作的執(zhí)行后,在用書去鞏固概念,這樣更加有利于你對知識的理解。
3.對于學(xué)習(xí)技術(shù)來講,掌握一個學(xué)習(xí)方法是非常重要的,其實對于web前端來講,學(xué)習(xí)方法確實很多都是相通的,一旦學(xué)習(xí)方法不對,可能就會造成“方法不對,努力白費”。其實關(guān)于這方面還是很多的,我就簡單說個例子,有的人邊聽課邊跟著敲代碼,這樣就不對,聽課的時候就專心聽,做題的時候就專心做題,這都是過來人的經(jīng)驗,一定要聽。根據(jù)每個人的不同,可能學(xué)習(xí)方法也會有所出路,找到適合你自己的學(xué)習(xí)方法是學(xué)習(xí)的前提。
4.不建議自己一個人瞎學(xué),在我了解學(xué)習(xí)編程的這些人來看,從零基礎(chǔ)開始學(xué)并且最后成功做這份工作的其實并沒有幾個,我覺得大部分原因就是因為他們都不了解web前端是干什么的,學(xué)什么的,就盲目地買書看,到處找視頻看,最后看著看著就放棄了,所以我建議初學(xué)者在沒有具體概念之前,還是找有經(jīng)驗的人請教一下,聊過之后你就會知道web前端具體是干什么的,該怎么學(xué),這是我個人的小建議,可以不采納。
必讀的前端書籍資料:
1、《JavaScript DOM 編程藝術(shù)》
超級前端暢銷書,作為前端程序員必讀兩遍以上的書籍,這本書籍特別適合初學(xué)前端的新人,前端的核心技術(shù)就是JavaScript,同時也是前端的難點。而這本書非常適合入門,通俗易懂,生動的案例可以讓初學(xué)者更好的進(jìn)行理解。所提及的很多編程思想?yún)s適合低中級層次的前端開發(fā)者學(xué)習(xí)。
2、《JavaScript權(quán)威指南》
同樣是前端程序員必讀的一本書籍,不僅適合初學(xué)者,還適合那些已經(jīng)在做前端工作的程序員進(jìn)行隨時翻閱。里面涵蓋了JavaScript的所有內(nèi)容,以及web瀏覽器所實現(xiàn)的JavaScript API。對于了解js的基礎(chǔ)知識,比如對象,數(shù)組,語法,作用域,閉包等等都很有幫助。
3、《JavaScript 高級程序設(shè)計》
如果你想把JavaScript非常完全的系統(tǒng)學(xué)習(xí)一遍,我強(qiáng)烈推薦這本書,這本書可以一直保留,在用這本書的過程中還可以畫下重點,以后可以作為參考,是工作中非常強(qiáng)力的幫手。面試的時候也可以很好的應(yīng)用上,我們俗稱的“紅寶書”。
4、《你不知道的JavaScript》
這本書不適合前端的初學(xué)者,想要深入的了解JavaScript原理,這是每一個前端程序員必須要研究的一本書籍。要讓不求甚解的JavaScript開發(fā)者迎難而上,深入語言內(nèi)部,弄清楚JavaScript每一個零部件的用途。如果可以把這本書吃透,那么以后理解任何東西都可以很快的理解和掌握。
5、《Vue.js權(quán)威指南》
Vue作為現(xiàn)在前端的主流框架,在國內(nèi)應(yīng)用最為廣泛,所以了解Vue原理必須要啃一本Vue的書籍。我之所以推薦這本,是因為這本書對于引導(dǎo)初用Vue的開發(fā)者有著質(zhì)的提升。從基礎(chǔ)知識到主流打包以及源碼解析,還有很多實踐的案例,都是一本不錯的實用性書籍。主要內(nèi)容包括數(shù)據(jù)綁定、指令、表單控件綁定、過濾器、組件、表單驗證、服務(wù)通信、路由和視圖、vue-cli、測試開發(fā)和調(diào)試、源碼解析及主流打包構(gòu)建工具等。該書內(nèi)容全面,講解細(xì)致,示例豐富,適用于各層次的開發(fā)者。
6、《編程之美》
無論是什么崗位的程序員,必讀的一本書籍,沒有讀過這本書的程序員幾乎都是假程序員。這本書有60道算法和程序設(shè)計題目,這些題目大部分在近年的筆試,面試中出現(xiàn)過,或者是被微軟員工熱烈討論過。作者試圖從書中各種有趣的問題出發(fā),引導(dǎo)讀者發(fā)現(xiàn)問題,分析問題,解決問題,尋找更優(yōu)的解法。可以大幅度提高自己的編程思維和對于這個行業(yè)的深入思考,最終變成技術(shù)大牛。
學(xué)習(xí)路線:
第1階段:前端頁面重構(gòu)(4周)
內(nèi)容包含了:(PC端網(wǎng)站布局項目、HTML5+CSS3基礎(chǔ)項目、WebApp頁面布局項目)
第2階段:JavaScript高級程序設(shè)計(5周)
內(nèi)容包含:(原生JavaScript交互功能開發(fā)項目、面向?qū)ο筮M(jìn)階與ES5/ES6應(yīng)用項目、JavaScript工具庫自主研發(fā)項目)
第3階段:PC端全棧項目開發(fā)(3周)
內(nèi)容包含:(jQuery經(jīng)典交互特效開發(fā)、HTTP協(xié)議、Ajax進(jìn)階與PHP/JAVA開發(fā)項目、前端工程化與模塊化應(yīng)用項目、PC端網(wǎng)站開發(fā)項目、PC端管理信息系統(tǒng)前端開發(fā)項目)
第4階段:移動端項目開發(fā)(6周)
內(nèi)容包含:(Touch端項目、微信場景項目、應(yīng)用Angular+Ionic開發(fā)WebApp項目、應(yīng)用Vue.js開發(fā)WebApp項目、應(yīng)用React.js開發(fā)WebApp項目)
第5階段:混合(Hybrid,ReactNative)開發(fā)(1周)
內(nèi)容包含:(微信小程序開發(fā)、ReactNative、各類混合應(yīng)用開發(fā))
第6階段:NodeJS全棧開發(fā)(1周)
內(nèi)容包括:(WebApp后端系統(tǒng)開發(fā)、一、NodeJS基礎(chǔ)與NodeJS核心模塊二、Express三、noSQL數(shù)據(jù)庫)
視頻教程:
以上就是尚學(xué)堂前端學(xué)院為您簡單介紹的關(guān)于web前端小白的學(xué)習(xí)路程。
總的來說,零基礎(chǔ)小白學(xué)習(xí)Web前端除了要了解整個前端行業(yè)的動態(tài)及發(fā)展外,還應(yīng)該學(xué)習(xí)HTML、CSS、JavaScript等知識,是一個龐大而復(fù)雜的技術(shù)體系。
如果你對于學(xué)習(xí)前端技術(shù)感興趣,想學(xué)一門新技術(shù),我給你提供一個非常不錯的前端學(xué)習(xí)交流qun:一一四一八八四九三一。有問題就在里面問我,這樣你可以少走很多彎路,做起來有效率,記得多跟有經(jīng)驗的人交流,別閉門造車。如果沒有比較好的教程,也可以管我要。
本文由尚學(xué)堂前端學(xué)院原創(chuàng),歡迎關(guān)注,帶你一起學(xué)習(xí)Web前端知識!
1.忽略特殊字符
2.只能輸入數(shù)字和小寫字母
3.只能輸入數(shù)字和字母
4.忽略表情
4.只能輸入數(shù)字
5.長度限制(限制6位)
6.限制單行
7.輸入價錢
8.輸入最多兩位小數(shù)的價錢
正則校驗篇
匹配-驗證手機(jī)號 普通 js寫法
RegExp exp=RegExp('^((13[0-9])|(14[0-9])|(15[0-9])|(16[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\d{8}$');
boolmatched=exp.test(mobileTextController.text);
匹配-驗證手機(jī)號 flutter寫法
RegExp exp=RegExp(r'^((13[0-9])|(14[0-9])|(15[0-9])|(16[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\d{8}$');
boolmatched=exp.hasMatch(mobileTextController.text);