一個(gè)小白一年后的樣子

2016年即將走完篇亭,回顧這一年缠捌,看看自己都收獲了什么,有哪些改變,哪些不足曼月,接下來該怎么走...

經(jīng)過這一年的洗禮谊却,我才真正算個(gè)小前端。

本人非科班出身(動(dòng)漫設(shè)計(jì)專業(yè))哑芹,本想找個(gè)3D角色設(shè)計(jì)的工作炎辨,但是由于家庭原因沒有學(xué)畫,所以美術(shù)基礎(chǔ)根本比不上美術(shù)生聪姿,所以一點(diǎn)競爭力都沒有碴萧,結(jié)局很明顯。

一天我哥(非親)下班回來找我談了之后末购,叫我不要找這些工作了破喻,說我完全沒有競爭力,永遠(yuǎn)不會(huì)有面試通知盟榴,然后就丟一套前端視頻給我看曹质,叫我去學(xué),當(dāng)時(shí)什么基礎(chǔ)都沒有曹货,只是逼于即將畢業(yè)與生活的壓力去試試看咆繁。

一個(gè)月之后還真的拿到offer了;然后接下來就是簡單的寫寫頁面顶籽,做做效果這些工作,涉及到的知識(shí)都不夠深入银觅,在這幾個(gè)月的時(shí)間里面礼饱,我去過幾家公司,結(jié)局都不太好究驴。

因?yàn)樵?015年的時(shí)候镊绪,我對互聯(lián)網(wǎng)這個(gè)行業(yè)還是一臉懵逼的狀態(tài),工作的那幾家公司的經(jīng)營狀況都不好洒忧,所以造成我的知識(shí)體系不夠系統(tǒng)蝴韭,到了現(xiàn)在這家公司之后才慢慢理解這個(gè)世界好大。

一熙侍、邂逅Json

根據(jù)我哥對我的解釋榄鉴,前端就是寫寫一些頁面,做一些動(dòng)效就可以了蛉抓,然后我對前端的認(rèn)識(shí)也就僅僅停留在這個(gè)層面庆尘,加上之前也就是做這些工作,所以我對 json 是什么都不知道巷送,百度之后還是半懵逼.

公司的前端(準(zhǔn)備離開的)簡單培訓(xùn)兩天后就走了驶忌。前期壓力好大,老大又好嚴(yán)笑跛,加上之前睡眠不好付魔,所以每天都好累聊品,好像回家去睡覺(不懂,想逃避)几苍;但膽子小不敢(其實(shí)自己也想學(xué)好翻屈,但不懂怎么去百度),哈哈哈擦剑。

別說 json 簡單妖胀,對于當(dāng)時(shí)我這個(gè)小白來說就是牽一發(fā)而動(dòng)全身,為什么這么說呢惠勒,因?yàn)?json 是跟數(shù)據(jù)掛鉤的赚抡,這樣引發(fā)第一次知識(shí)體系崩塌,所以我學(xué)會(huì)了一些處理數(shù)據(jù)的方法纠屋。

比如:

shift 方法:刪除原數(shù)組第一項(xiàng)涂臣,并返回刪除元素的值;如果數(shù)組為空則返回undefined

var a = [1,2,3,4,5];

var b = a.shift();

返回 ?a:[2,3,4,5] ? ? b:1

push ?方法:將參數(shù)添加到原數(shù)組末尾售担,并返回?cái)?shù)組的長度

var a = [1,2,3,4,5];

var b = a.push(6,7);

返回 ? a:[1,2,3,4,5,6,7] ? ? b:7

concat ?方法:返回一個(gè)新數(shù)組赁遗,是將參數(shù)添加到原數(shù)組中構(gòu)成的

var a = [1,2,3,4,5];

var b = a.concat(6,7);

返回 ? a:[1,2,3,4,5] ? ? ?b:[1,2,3,4,5,6,7]

還有很多,就不一一列舉了

二族铆、JS的另一扇門

當(dāng)時(shí)對JS的理解也僅僅停留它可以寫一些動(dòng)畫效果岩四,做一些簡單的dom操作等,而且平時(shí)用Jquery這個(gè)平民級插件比較多哥攘。

有一次老大叫我做個(gè)購物車的功能剖煌,說了一些功能之后我都不知道從何下手,還有g(shù)et逝淹、post也不明白耕姊,百度一大堆都不是我想要的東西。

實(shí)在沒辦法了就問老大栅葡,本以為會(huì)被訓(xùn)一頓茉兰,但是老大沒有這么做,而是放下他手上的工作欣簇,坐下來慢慢教我一些基礎(chǔ)知識(shí)规脸,比如js文件里面的方法是怎么執(zhí)行的、get醉蚁、post燃辖、全局定義與局部定義的區(qū)別等。

經(jīng)過老大的虛心教導(dǎo)网棍,我對js的理解又提高一個(gè)層面黔龟。實(shí)踐幾次之后,這些知識(shí)基本熟悉,工作上基本就沒什么問題了氏身,接下來就是代碼優(yōu)化巍棱。

最重要是教會(huì)了我怎么百度,怎么抓關(guān)鍵字去搜索蛋欣,這為我往后的學(xué)習(xí)提供了很大的幫助航徙。(謝謝TT哥)

雖然懂得這些知識(shí)已經(jīng)足夠應(yīng)付工作上問題,但js比我們想象中強(qiáng)大的多陷虎。比如 Angular.js ,在這里我們要感謝那些開發(fā)這么優(yōu)秀的前端框架的人到踏。

Angularjs

ng的mvc模式是一種軟件設(shè)計(jì)模式,用于開發(fā)Web應(yīng)用程序尚猿,基本內(nèi)容可以簡單分為以下三個(gè)部分:

模型/Model - 一個(gè)負(fù)責(zé)維護(hù)數(shù)據(jù)模式的最低水平窝稿。

模型是負(fù)責(zé)管理應(yīng)用程序的數(shù)據(jù)。它響應(yīng)來自視圖的請求凿掂,同時(shí)也響應(yīng)指令從控制器進(jìn)行自我更新伴榔。

視圖/View - 負(fù)責(zé)顯示所有或數(shù)據(jù)到用戶的部分。

在一個(gè)特定的格式的演示數(shù)據(jù)庄萎,由控制器決定觸發(fā)顯示數(shù)據(jù)踪少。它們是基于腳本的模板系統(tǒng),如JSP糠涛,ASP援奢,PHP,非常容易使用AJAX技術(shù)的集成忍捡。

控制器/Controller - 軟件代碼控制Model和View之間的相互作用萝究。

控制器負(fù)責(zé)響應(yīng)于用戶輸入并執(zhí)行交互數(shù)據(jù)模型對象★惫蓿控制器接收到輸入,它驗(yàn)證輸入绕娘,然后執(zhí)行修改數(shù)據(jù)模型的狀態(tài)的業(yè)務(wù)操作脓规。

使用angularjs這個(gè)框架帶給我比較大的體驗(yàn)就屬它本身的表單認(rèn)證了,比起使用jq寫表單認(rèn)證险领,ng要方便很多侨舆,以下是我收集表單的各種認(rèn)證方式:

1、必填項(xiàng)驗(yàn)證

某個(gè)表單輸入是否已填寫绢陌,只要在輸入字段元素上添加HTML5標(biāo)記required即可

<input type="text" required />

2. 最大挨下、最小長度

驗(yàn)證表單輸入的文本長度是否大于某個(gè)最小值,在輸入字段上使用指令ng-minleng= "{number}"

<input type="text" ng-minlength="5" />

驗(yàn)證表單輸入的文本長度是否小于或等于某個(gè)最大值脐湾,在輸入字段上使用指令ng-maxlength="{number}":

<input type="text" ng-maxlength="20" />

3臭笆、模式匹配

使用ng-pattern="/PATTERN/"來確保輸入能夠匹配指定的正則表達(dá)式

<input type="text" ng-pattern="/[a-zA-Z]/" ?/>

4、電子郵件

驗(yàn)證輸入內(nèi)容是否是電子郵件,只要像下面這樣將input的類型設(shè)置為email即可

<input type="email" name="email" ng-model="user.email" ?/>

5愁铺、數(shù)字

驗(yàn)證輸入內(nèi)容是否是數(shù)字鹰霍,將input的類型設(shè)置為number

<input type="number" name="age" ng-model="user.age" ?/>

6、URL

驗(yàn)證輸入內(nèi)容是否是URL茵乱,將input的類型設(shè)置為 url

<input type="url" name="homepage" ng-model="user.facebook_url" ?/>

不得不說茂洒,ng的開發(fā)團(tuán)隊(duì)實(shí)在是太優(yōu)秀了,想的相當(dāng)周到瓶竭。在css中分別定義.ng-pristine督勺、.ng-valid、.ng-invalid斤贰、.ng-dirty這四個(gè)類智哀,這些認(rèn)證會(huì)根據(jù)相應(yīng)的狀態(tài)自動(dòng)加上相應(yīng)的類,配合相關(guān)的樣式會(huì)做出很不錯(cuò)的體驗(yàn)腋舌。

ng最重要思想還是MVC盏触、路由、雙向數(shù)據(jù)綁定块饺、依賴注入赞辩、指令系統(tǒng)等,其中提供的服務(wù)與過濾器也相當(dāng)方便授艰,ng還有很多強(qiáng)大的方面有待我去挖掘辨嗽,我會(huì)繼續(xù)努力的。

ionic?

談到angularjs淮腾,就不得不說 ionic + angularjs 開發(fā)的app了糟需。

來公司沒多久之后老大就開會(huì)說,我們接下來要使用ionic+angularjs構(gòu)建非原生APP谷朝,網(wǎng)上有教程洲押,叫我們過年前先開發(fā)個(gè)雛形(因?yàn)槔洗笥惺拢崆罢埣伲┰不耍^完年后再慢慢疊加杈帐。

我當(dāng)時(shí)是第一次聽說前端可以開發(fā)APP,當(dāng)時(shí)有興奮又擔(dān)心专钉;興奮是因?yàn)橛挚梢詫W(xué)到新的東西挑童,擔(dān)心是怕做不好,加上老大也是第一次接觸跃须,哈哈哈站叼,不過老大是萬年老司機(jī),知識(shí)層面比我高很多菇民,接受新知識(shí)肯定比我們快很多尽楔,所以我的擔(dān)心是老大預(yù)料之中的事情投储。

ionic 是基于angularjs的混合應(yīng)用開發(fā)框架,其中一些css組件與Boostrap的類似翔试,加上ionic獨(dú)特的注入轻要,開發(fā)起來相當(dāng)方便。

當(dāng)時(shí)開發(fā)APP1.0的時(shí)候可以說是困難重重垦缅,比如最簡單的冲泥,在APP的首頁做個(gè)banner幻燈片(輪播圖)。

一開始是用寫死的數(shù)據(jù)壁涎,所以輪播圖顯示一點(diǎn)問題都沒有凡恍,但是一用后臺(tái)請求回來的數(shù)據(jù)就杯具了,完全沒有顯示怔球,只有一些標(biāo)簽嚼酝。

在這里認(rèn)真一想就通了,邏輯是沒錯(cuò)的竟坛,因?yàn)檫@些標(biāo)簽加載完成的時(shí)候闽巩,后臺(tái)請求的數(shù)據(jù)還沒拿到,所以在頁面沒有顯示輪播圖的圖片担汤。

找了好久涎跨,最后是在國外的ionic論壇里找到答案的,他們說只要在回調(diào)哪里加上下面這句話就好了

$ionicSlideBoxDelegate.$getByHandle('slideHandle').update(); ?//重繪幻燈片

我照做了崭歧,但是還是沒有效果隅很,這就尷尬了,最后還是看官網(wǎng)的API才知道答案的率碾,加上上面這句話還不完整叔营,還要在輪播圖標(biāo)簽加上識(shí)別' 把柄' '如下

<ion-slide-box? delegate-handle="slideHandle"></ion-slide-box>

這里的 delegate-handle="slideHandle" 中的? slideHandle? 要與? $getByHandle('slideHandle') 中的slideHandle相一致;

確保重繪的幻燈片是自己想要的那個(gè)

還有就上拉加載/下拉刷新所宰,這個(gè)也折騰了我好久绒尊,因?yàn)楫?dāng)時(shí)我不知道所謂的 下拉刷新? 就是重新獲取一次數(shù)據(jù)就好了(一臉懵逼,這么簡單仔粥?)垒酬,上拉加載? 就是上拉翻頁,百度一下什么都有了件炉,只是我一開始不知道是這個(gè)原理(...,乖我是小白咯)矮湘;

其實(shí)還有很多斟冕,只要是第一次接觸不是太了解,只要肯下功夫去學(xué)缅阳,慢慢就清晰了磕蛇,我會(huì)繼續(xù)加油的景描。

三、看似弱小而強(qiáng)大的力量 —— CSS

要我說秀撇,把一個(gè)完整的頁面比喻成做一道美食的話超棺,html應(yīng)該是還沒有加工的食物,js就好比配料呵燕,我們就屬于廚司了棠绘,這樣一道美食端到晚餐的桌面上會(huì)不會(huì)覺得少了了點(diǎn)什么東西?

想象一下這樣的場景再扭,你與你的女神在很優(yōu)雅的餐廳吃飯氧苍,服務(wù)員把這個(gè)名廚炒的菜端到你們的桌子上,這么撲鼻而來的香味刺激著你的嗅覺神經(jīng)泛范,這時(shí)不叫一支82年的拉菲让虐,對得起這樣的情調(diào)嗎,我相信你們不會(huì)錯(cuò)過的罢荡。

而css就像這支82年的拉菲赡突,高貴而優(yōu)雅,看似弱小卻起到四兩撥千金的作用区赵。

我看似是對著css掌握的很好了惭缰,覺得我會(huì)寫一大堆動(dòng)畫效果了,什么布局都可以完美處理惧笛。人就是這樣从媚,自大總會(huì)被事實(shí)打臉啪啪。

就拿一個(gè)<img />標(biāo)簽來說患整,直接放在一個(gè)div里面拜效,你會(huì)發(fā)現(xiàn)這div中會(huì)比這圖片大5像素作用,不管你設(shè)置padding:0各谚、還是設(shè)置margin:0紧憾;這些都沒有效果,因?yàn)閏ss中默認(rèn)img的display屬性是inline昌渤;你仔細(xì)觀看就會(huì)發(fā)現(xiàn)圖片的底部高了一點(diǎn)赴穗,一般情況下是沒有太大的影響的,假如真的影響到了就要解決掉膀息。

要解決這個(gè)問題般眉,你可以設(shè)置成下面這樣 ?

img {display:block;} ?

或者img{float:left;}

這個(gè)你可能會(huì)在css的一些基礎(chǔ)設(shè)置里面就已經(jīng)寫好了,但是偶爾一些是沒有寫到的潜支,除了這個(gè)方法甸赃,你還可以為這個(gè)img標(biāo)簽添加浮動(dòng)樣式,也可以起到相同的效果冗酿,這些是再常見不過的問題了埠对。

還有一個(gè)讓我耳目一新的樣式络断,我覺得很神奇,就是在(pc端/移動(dòng)端)屏幕定位居中顯示的彈窗项玛。我們一般是用? margin-left? 或者 margin-right? 取負(fù)值來左右平衡貌笨,這樣是沒什么問題的,也是解決上下左右顯示的一種方法襟沮,一些老司機(jī)可能就沒有這樣的新鮮感了锥惋。

另一種辦法就是下面這種了

div{width:250px;height:150px;position:absolute;top:0;bottom:0;left:0;right:0;margin: auto;}

不管你的寬高是多少,都可以相對這個(gè)元素的父級上下左右居中顯示臣嚣;雖然對其中原理的解釋還不夠清晰净刮,但這個(gè)樣式可以應(yīng)用到很多方面,這就要看實(shí)際的應(yīng)用了硅则。

這個(gè)世界很大淹父,比你我優(yōu)秀的大有人在,要追逐這些大神的腳步怎虫,我們要馬不停蹄的努力暑认,這條路沒有捷徑,加油大审。

以上就是這一年內(nèi)在工作上比較突出的收獲了蘸际,這其中還有很多需要深入的知識(shí),接下來我會(huì)更加努力的徒扶。

感謝在這一年中一直陪伴著我的各位粮彤,謝謝。

No matter how hard it is, just keep going because you only fail when you give up.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姜骡,一起剝皮案震驚了整個(gè)濱河市导坟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌圈澈,老刑警劉巖惫周,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異康栈,居然都是意外死亡递递,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門啥么,熙熙樓的掌柜王于貴愁眉苦臉地迎上來登舞,“玉大人,你說我怎么就攤上這事悬荣⊙吩辏” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵隅熙,是天一觀的道長稽煤。 經(jīng)常有香客問我,道長囚戚,這世上最難降的妖魔是什么酵熙? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮驰坊,結(jié)果婚禮上匾二,老公的妹妹穿的比我還像新娘。我一直安慰自己拳芙,他們只是感情好察藐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著舟扎,像睡著了一般分飞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上睹限,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天譬猫,我揣著相機(jī)與錄音,去河邊找鬼羡疗。 笑死染服,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叨恨。 我是一名探鬼主播柳刮,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼痒钝!你這毒婦竟也來了秉颗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤午乓,失蹤者是張志新(化名)和其女友劉穎站宗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體益愈,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梢灭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蒸其。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敏释。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖摸袁,靈堂內(nèi)的尸體忽然破棺而出钥顽,到底是詐尸還是另有隱情,我是刑警寧澤靠汁,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布蜂大,位于F島的核電站闽铐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏奶浦。R本人自食惡果不足惜兄墅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澳叉。 院中可真熱鬧隙咸,春花似錦、人聲如沸成洗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓶殃。三九已至充包,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碌燕,已是汗流浹背误证。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留修壕,地道東北人愈捅。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像慈鸠,于是被迫代替她去往敵國和親蓝谨。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • ng-model 指令ng-model 指令 綁定 HTML 元素 到應(yīng)用程序數(shù)據(jù)青团。ng-model 指令也可以:...
    壬萬er閱讀 868評論 0 2
  • AngularJS是什么譬巫?AngularJs(后面就簡稱ng了)是一個(gè)用于設(shè)計(jì)動(dòng)態(tài)web應(yīng)用的結(jié)構(gòu)框架。首先督笆,它是...
    200813閱讀 1,602評論 0 3
  • AngularJS簡介:AngularJS 是一個(gè)為動(dòng)態(tài)WEB應(yīng)用設(shè)計(jì)的結(jié)構(gòu)框架芦昔,提供給大家一種新的開發(fā)應(yīng)用方式,...
    程序員米粉閱讀 48,495評論 32 117
  • 昨天早上我去大疆面試娃肿,歷經(jīng)了兩輪面試咕缎、三人轟炸,算是走到終面了料扰,剩下的就是等待周一大疆的通知凭豪。面試雖然已經(jīng)結(jié)...
    桔梗代號J閱讀 15,083評論 21 19
  • 親愛的伙伴們,據(jù)呂梁第四期專業(yè)課結(jié)束半個(gè)月的時(shí)間晒杈,我來到了省城嫂伞。跨出家門,放下手頭一切的事情帖努,放下一個(gè)全職媽媽的身...
    ea37f8d14c5a閱讀 109評論 0 0