成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

首次踏入vue坑——閱讀zhihudaily-vue源碼

JasonZhang / 2912人閱讀

摘要:之前用的技術(shù)棧都是上找的的腳手架,第一次看項(xiàng)目的源碼。感覺一個(gè)文件里包含模板對(duì)應(yīng)和樣式的組合方式,使得組件化更加明顯,也降低了平時(shí)項(xiàng)目中的小文件數(shù)量。相比于的,使用在原生標(biāo)簽里插入屬性和一些模板表達(dá)式來展示數(shù)據(jù),顯得簡(jiǎn)潔了許多。

之前用的技術(shù)棧都是yeoman上找的webpack+react的腳手架,第一次看vue項(xiàng)目的源碼。
感覺一個(gè)vue文件里包含html模板、對(duì)應(yīng)JS和樣式的組合方式,使得組件化更加明顯,也降低了平時(shí)項(xiàng)目中的小文件數(shù)量。
相比于react的JSX,使用在原生標(biāo)簽里插入屬性和一些模板表達(dá)式來展示數(shù)據(jù),顯得簡(jiǎn)潔了許多。
總體感覺,更小巧,更簡(jiǎn)潔。
還有跟react有顯著不同的是,vue中使用原生js很方便,對(duì)dom的操作也很方便,所以在很多react很棘手的問題上,vue明顯方便了很多。

此項(xiàng)目的移動(dòng)設(shè)備匹配方案使用的是淘寶的flexible方案,根據(jù)設(shè)備動(dòng)態(tài)在html加入dpr和font-size屬性,并且在webpack里自定義vue作為loader,使用如下的配置

postcss: [require("postcss-px2rem")({
  baseDpr: 1,             // base device pixel ratio (default: 2)
  threeVersion: false,    // whether to generate @1x, @2x and @3x version (default: false)
  remVersion: true,       // whether to generate rem version (default: true)
  remUnit: 37.5,            // rem unit value (default: 75)
  remPrecision: 3         // rem precision (default: 6)
})],

其中dpr和rem是flexible相應(yīng)的概念,可以參考淘寶出的flexible手冊(cè)進(jìn)行了解。
進(jìn)行了上述配置以后,就可以在css里隨意寫px,然后會(huì)自動(dòng)轉(zhuǎn)換成rem值并進(jìn)行多設(shè)備的匹配工作了。

項(xiàng)目還依賴了fastclick庫(kù),其github說明為
FastClick is a simple, easy-to-use library for eliminating the 300ms delay between a physical tap and the firing of a click event on mobile browsers. The aim is to make your application feel less laggy and more responsive while avoiding any interference with your current logic.
總體來說就是讓應(yīng)用在移動(dòng)端的體驗(yàn)更加優(yōu)化,讓點(diǎn)擊從300ms左右的click動(dòng)作變?yōu)?0~100ms的touchend動(dòng)作,還解決了點(diǎn)透問題。鏈接:http://www.cnblogs.com/yexiao...

項(xiàng)目中的各種小圖標(biāo)是使用阿里巴巴的fonticon解決方案(http://www.iconfont.cn/)來實(shí)現(xiàn)的,只要在scss里定義一個(gè)font family

font-family: "iconfont";
src: url("http://at.alicdn.com/t/font_1467357626_5109937.eot"); /* IE9*/
src: url("http://at.alicdn.com/t/font_1467357626_5109937.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
url("http://at.alicdn.com/t/font_1467357626_5109937.woff") format("woff"), /* chrome、firefox */
url("http://at.alicdn.com/t/font_1467357626_5109937.ttf") format("truetype"), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
url("http://at.alicdn.com/t/font_1467357626_5109937.svg#iconfont") format("svg"); /* iOS 4.1- */

載入阿里CDS下的各個(gè)字體,就可以使用類似的方式來調(diào)用一個(gè)個(gè)小圖標(biāo)了。

項(xiàng)目首頁展示的swiper里的圖像都通過一個(gè)簡(jiǎn)單的正則表達(dá)式,被重定向到了https://images.weserv.nl/?url=這一網(wǎng)址,該網(wǎng)址的說明為
Images.weserv.nl is an image cache & resize proxy. Our servers resize your image, cache it worldwide, and display it.
不是特別懂這一步的意義在哪。緩存圖像?統(tǒng)一大?。?/p>

整個(gè)通篇看下來是個(gè)各組件各自為戰(zhàn)的小型webapp,很多功能都缺打磨,組件之間很少看到數(shù)據(jù)傳遞,都是自己調(diào)用ajax來獲取自己所需要的數(shù)據(jù)并展示出來,通過vue-router構(gòu)建單頁應(yīng)用,也沒有統(tǒng)一的狀態(tài)管理和單向數(shù)據(jù)流(類似redux),不過小而美本來就是vue的訴求吧。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91251.html

相關(guān)文章

  • --- 基于釘釘?shù)腤eex微應(yīng)用開發(fā)起手式(其實(shí)寫完發(fā)現(xiàn)變成Weex相關(guān)資料匯總了)

    摘要:?jiǎn)栴},你可以在中文討論板塊提交問題,地址。文字展現(xiàn)必須使用標(biāo)簽關(guān)于端的點(diǎn)透事件需要在上層視圖上加上,如果上層視圖有事件,多加一個(gè)中間層,把加在空事件視圖上關(guān)于事件注意僅支持和,暫不支持。事件會(huì)在頁面就要關(guān)閉時(shí)被觸發(fā)。 好吧,我知道你來看這個(gè)文章,一定是遇到坑了,所以,把這幾個(gè)放在最開始吧 現(xiàn)在,如果你的團(tuán)隊(duì)的技術(shù)棧是react,請(qǐng)嘗試這個(gè)吧,跟react很像,如果你的團(tuán)隊(duì)一直使用rea...

    zhouzhou 評(píng)論0 收藏0
  • Riot.js——一個(gè)小而美的JS框架

    摘要:專有的內(nèi)容更少,而更多符合標(biāo)準(zhǔn)的成分。當(dāng)前標(biāo)簽實(shí)例的方法被調(diào)用時(shí)當(dāng)前標(biāo)簽的任何一個(gè)祖先的被調(diào)用時(shí)更新從父親到兒子單向傳播。相對(duì)來說,微型場(chǎng)景會(huì)更適合,不想要太多的外部依賴,又需要組件化數(shù)據(jù)驅(qū)動(dòng)等更現(xiàn)代化框架的能力。 Riot.js是什么? Riot 擁有創(chuàng)建現(xiàn)代客戶端應(yīng)用的所有必需的成分: 響應(yīng)式 視圖層用來創(chuàng)建用戶界面 用來在各獨(dú)立模塊之間進(jìn)行通信的事件庫(kù) 用來管理URL和瀏覽器回...

    nemo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<