效率神器!UI 稿智能轉換成前端代碼

做前端,不搬磚

大家好,我是若川。
從事前端五年之久,也算見證了前端數次變革,從到DW(Dreamweaver)到H5C3、從JQuery到MVC框架,無數前端大佬在為打造前端完整生態做出努力,由于他們的努力,我們開始重新思考前端的定義。作為一名前端,我們深知完美還原設計稿這部分工作簡單且枯燥繁瑣,這部分工作,我們統稱為“搬磚”,為了能減輕“搬磚”工作量,我們業內人士也做了很多努力,開發了各ui庫,但是設計稿跟UI庫的樣式往往大有徑庭,因此還需要我們還是的從根上解決問題,才能最有效的減輕“搬磚”工作量。

所以CodeFun誕生了,做為一名CodeFun的忠實粉絲,不管是出于對CodeFun的鼓勵又或者是基于開發者的分享精神,我覺得我都有必要把這樣一款變革性的開發工具推薦給大家。從前端變革的角度來講CodeFun的誕生應該是具有里程碑性的意義。JQuery的誕生,讓我們可以更方便的去操縱DOM,React/Vue/Angular等MVC框架的誕生讓我們不再去關心DOM,而CodeFun的誕生讓我們不再關心前端視圖代碼,看到這肯定很多同學要問,CodeFun究竟是個啥?

如果不想看后續文章,可以直接掃碼進群體驗產品,1024程序員節京東卡抽獎等你來。另外可以訪問官網 https://code.fun 了解。

c4c8e942665dab528af7eb235f1c74cf.png

CodeFun是個啥???

CodeFun是一款 UI 設計稿智能生成源代碼的工具,可以將 Sketch、Photoshop 的設計稿智能轉換為前端源代碼。這是來自CodeFun官方定義,看到這里不少同學肯定會想到另外一款工具-藍湖,如果CodeFun的作用僅僅類似于藍湖/摹客等工具,那么也不值得我花費時間寫一篇文章來推薦它,更不能將它定義為前端變革性工具。

CodeFun的特點

相比于其他工具,個人對于CodeFun的使用感受就是:智能、強大

如何智能?

CodeFun所生成的代碼是可以用智能來形容,因為無論從可擴展性還是可維護性亦或者合理性都是無可挑剔的

  • 可維護性與擴展性

設計圖

9148979dbd8c2177a4143c4ddf90f236.png

像這樣的列表區域,我們平時都喜歡用數組循環渲染DOM。來看一下CodeFun是怎么生成的

生成代碼

//?列表數組const?data?=?{?listnLG7eFN3:?[null,?null,?null,?null,?null,?null,?null,?null,?null,?null,?null]?};return?(<div?className={`flex-col?${styles['list']}`}>//?循環渲染{data.listnLG7eFN3.map((item,?i)?=>?(<div?key={'item'?+?i}><div?className={`${styles['list-item']}?justify-between`}><div?className={`${styles['left-group']}?flex-row`}><div?className={`${styles['left-section']}`}></div><span>二級導航標題</span></div><div?className={`${styles['right-group']}?flex-row`}><span>更多</span><imgsrc="https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/60e57f7ffaa6670013254a0b/6157ff3d460a150011ec3267/16331624898575077322.png"className={`${styles['icon_1']}`}/></div></div></div>))}</div>);
}

怎么樣?是不是狠智能啊,直接CV大法即可。

  • 合理性

設計圖

09d65ce20d34fb4c79b26bb4206ed4c0.png

看到上面的排列布局,很多同學的寫法是浮動布局,但是都2021了,怎么能不用flex布局呢,flex布局作為前端神器,作用想必不用我多說了吧

.equal-division-item?{flex:?1?1?110px;?//?不管瀏覽器如何伸縮,圖片依舊保持三等分
}

作為一款工具,盡然能貼心的用flex布局,這還是工具嗎?這簡直就是工具人啊!!

如何強大?

上面僅僅為大家展示了CodeFun所生成的視圖代碼,是不是已經被CodeFun圈粉了呢?別急,還有更加人性化的騷操作!!!

  • 交互行為

設計圖

4880615c3fc696c3c57437a2d07b7526.png

上面我們展示生成了頁面列表的視圖代碼,心急的同學肯定在想,還有很多交互代碼,還不是得自己寫嗎?NO!NO!NO!CodeFun這個“工具人”已經想到了這一點,往下看!

c51a1a256432cf840de695a1fa4bd571.png

經過一些簡單的操作,我們就可以直接將頁面上的某些元素綁定跳轉事件,是不是狠nice!

生成代碼

//?竟然用了useHistory
import?{?useHistory?}?from?'react-router-dom';export?default?function?Erjiyemian()?{const?history?=?useHistory();
//?跳轉事件都幫我生成了const?view_17OnClick?=?()?=>?{history.push('/index');};return?(//?點擊事件已經綁好。。。。<div?onClick={view_17OnClick}?className={`${styles['list-item']}?flex-col`}>//?這里的代碼已經被我干掉了,不為別的,就為你閱讀方便</div>);
}

看到這,是不是某些同學還學到點新知識-useHistory,不會吧,不會吧,都2021了還有同學不會hook寫法嗎???一個“工具人”都會啊,實在汗顏吶。。。。

  • 數據綁定

跳轉事件的綁定是不是把某些同學下巴驚掉了呢?先收一收下巴,來看一下這個“工具人”另一個騷操作--數據綁定。不知道細心的同學有沒有發現,上面CodeFun為我們生成的代碼,雖然進行了數組渲染,但是數組里卻都是null,在實際使用場景中我們依舊需要數組里的數組,像這樣

//?codeFun生成const?data?=??[null,null,null,null,null];//?手動修改之后const?data?=?[{title:""},{title:""},{title:""},{title:""},{title:""}]

其實大可不必,“工具人”這個稱號可不是蓋的,看操作!!!

d1503690068eea2b660dd947fd4aab36.gif

經過一點簡單的配置,我們就可以得到以下代碼,根本不需要做二次修改的啦🤩

const?data?=?{?title:?'傳騰訊音樂遭中國反壟斷機構調查;茶顏\n悅色回應阿里入股;Costco 登陸上海'?};
  • 資源路徑

生成帶有img標簽代碼后,很多同學會覺得修改一下圖片路徑也很正常,畢竟是個工具嗎,要求不能太高,可是據我對CodeFun的了解,它應該舍不得讓我們受累去做這樣的事情,果然發現了動態配置資源地址的方式

e2c3a8aeb997eee9158d057582783053.gif

通過配置資源地址,我們可以輕松生成含有對應路徑的img標簽

生成代碼

//?云路徑<imgsrc="https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/60e57f7ffaa6670013254a0b/6157ff3d460a150011ec3267/16331624930749770689.png"className={`${styles['equal-division-item']}`}
/>//?自定義路徑<imgsrc="/public/image/remote/2da259e8200dfcac7b79c4805a0a585f.png"className={`${styles['equal-division-item']}`}/>
  • 像數單位

做h5應用的同學應該對于這rem是比較熟悉的,但是每次用rem布局都得換算,對于CodeFun來說,小case啦

51466705a491780b420fcb297356161d.gif

選擇像數單位為rem,直接幫你生成rem單位的css代碼,就問你絲不絲滑。。。

生成代碼

//?px?單位
.equal-division-item?{flex:?1?1?110px;width:?110px;height:?74px;
}
//?rem?單位??
.equal-division-item?{flex:?1?1?6.88rem;width:?6.88rem;height:?4.63rem;
}

高光時刻

看到這里有的同學肯定會覺得這些案例也忒簡單了,實際工作中可比這復雜多了,CodeFun能解決嗎?接下來帶你見證CodeFun的高光時刻!!!

案例一

最常見的商城首頁,如果自己開發你需要用多久呢?使用CodeFun 依舊23秒 (實際使用時間取決于你CV大法的速度) 搞定

430b1c80b5f057d91e9a84345b071487.png

效果圖

1f05b260b85bb193ce31b81779f1ae29.gif

案例二

像這樣有明顯層級感的頁面,CodeFun對于層級以及陰影的處理依舊是滿分操作

703be75da5e18e8f778acac11675de49.png

效果圖

a8e44e3555567ff16b2a2db4301a4cb4.gif

案例三

卡片類型的頁面,CodeFun也毫不遜色!!

e7f0a33be27971d8f058c805dfdc459d.png

效果圖

762ce8ba42cdfa7e96a550e6c31831bd.gif

黑科技來啦!!!

是不是看完高光時刻,有些同學是不是覺得還是不過癮呢,額。。。時間關系呢,還有一些功能就不一一介紹了哈(其實比較懶),不過呢,我還可以給大家推薦一個我常用的黑科技-小程序預覽功能,之所以能探索到這個黑科技,那是因為我那個比較N(S)B的老板,非得看到實際效果然后再提出設計圖的修改意見(MDZZ),不過還好,CodeFun包容了我老板的這個機智(智障)行為,一起來看看吧。

  • 操作步驟一

fc2da5aef216fcc978aee5478e32f4be.png

選擇右上角預覽功能

  • 操作步驟二

d8e42dbbc7f4b5cdc03357323642966c.png

選擇微信小程序,點擊下一步

  • 操作步驟三

2d33f6791e6f4d74a326e4ce9c61c5ff.png

掃描上方二維碼 即可進行小程序預覽,怎么樣?四不四很贊吶!!!

END

以上只是關于CodeFun的部分功能,是不是覺得CodeFun是一款前端開發神器呢,其實關于CodeFun的其他功能還沒來得及使用,不過僅僅是上述功能已經讓我實現了“摸魚自由”,看到這你是不是也想盡快體驗一把23秒寫一個頁面呢?來,這是鏈接,別客氣:https://ide.code.fun。最后做為一名CodeFun忠實粉絲,衷心希望CodeFun團隊能為CodeFun賦予更多能力。

PS:CodeFun現已支持上傳PSD設計稿,別問我怎么知道的,掃碼進入下方群聊,不僅能收到最新消息,還可以體驗內測功能~也可以點擊讀原文訪問官網https://了解。

bb1906c0f3ea495b7479cd16d5f715a2.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275317.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275317.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275317.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

$.when.apply_When2Meet vs.LettuceMeet:UI和美學方面的案例研究

$.when.apply并非所有計劃應用程序都是一樣創建的。 (Not all scheduling apps are created equal.) As any college student will tell you, we use When2Meet almost religiously. Between classes, extracurriculars, work, and simply living, When2Meet is the scheduling…

BZOJ4825: [Hnoi2017]單旋(Splay)

題面 傳送門 題解 調了好幾個小時……指針太難寫了…… 因為只單旋最值&#xff0c;我們以單旋\(\min\)為例&#xff0c;那么\(\min\)是沒有左子樹的&#xff0c;而它旋到根之后&#xff0c;它的深度變為\(1\)&#xff0c;它的右子樹里所有節點深度不變&#xff0c;其它所有節點…

前端不容你褻瀆

大家好&#xff0c;我是若川&#xff0c;點此加我微信進源碼群&#xff0c;一起學習源碼。同時可以進群免費看Vue專場直播&#xff0c;有尤雨溪分享「Vue3 生態現狀以及展望」背景最近我在公眾號的后臺收到一條留言&#xff1a;言語里充滿了對前端的不屑和鄙夷&#xff0c;但仔…

用jquery阻止事件起泡

jquery使用過程中阻止事件起泡實例 1、通過返回false來取消默認的行為并阻止事件起泡。jQuery 代碼:$("form").bind("submit", function() { return false; })2、通過使用 preventDefault() 方法只取消默認的行為。jQuery 代碼:$("form").bind(…

利益相關者軟件工程_如何向利益相關者解釋用戶體驗的重要性

利益相關者軟件工程With the ever increasing popularity of user experience (UX) design there is a growing need for good designers. However, there’s a problem for designers here as well. How can you show the importance of UX to your stakeholders and convince…

云棲大會上,阿里巴巴重磅發布前端知識圖譜!

大家好&#xff0c;我是若川&#xff0c;點此加我微信進源碼群&#xff0c;一起學習源碼。同時可以進群免費看Vue專場直播&#xff0c;有尤雨溪分享「Vue3 生態現狀以及展望」阿里巴巴前端知識圖譜&#xff0c;由大阿里眾多前端技術專家團歷經1年時間精心整理&#xff0c;從 初…

Linux下“/”和“~”的區別

在linux中&#xff0c;”/“代表根目錄&#xff0c;”~“是代表目錄。Linux存儲是以掛載的方式&#xff0c;相當于是樹狀的&#xff0c;源頭就是”/“&#xff0c;也就是根目錄。 而每個用戶都有”家“目錄&#xff0c;也就是用戶的個人目錄&#xff0c;比如root用戶的”家“目…

在當今移動互聯網時代_誰在提供當今最好的電子郵件體驗?

在當今移動互聯網時代Hey, a new email service from the makers of Basecamp was recently launched. The Verge calls it a “genuinely original take on messaging”, and it indeed features some refreshing ideas for the sometimes painful exercise we call inbox man…

插件式開發小記

在做插件開發時&#xff0c;小記一下&#xff0c;用來備忘&#xff1a; 1.DEV8.2的XtraTabControl控件如何獲得當前打開的子窗體&#xff1a;XtraForm frm (XtraForm)xtraTabControl1.SelectedTabPage.Controls[0];2.插件開發的底層標準最好是抽象類&#xff0c;這樣擴展性好。…

linux運維工程師學習路線

一、學習路線&#xff1a; 1.青銅&#xff1a; 1、Linux基礎知識、基本命令&#xff08;起源、組成、常用命令如cp、ls、file、mkdir等常見操作命令&#xff09; 2、Linux用戶及權限基礎 3、Linux系統進程管理進階 4、linux高效文本、文件處理命令&#xff08;vim、grep、sed、…

React 全新文檔上線!

大家好&#xff0c;我是若川&#xff0c;點此加我微信進源碼群&#xff0c;一起學習源碼。同時可以進群免費看明天的Vue專場直播&#xff0c;有尤雨溪分享「Vue3 生態現狀以及展望」&#xff0c;還可以領取50場錄播視頻和PPT。React 官方文檔改版耗時 1 年&#xff0c;今天已完…

POJ2392

題意:奶牛們要用K個不同類型的石頭建太空電梯.每一種石頭的高度為Hi&#xff0c;數量為Ci,且不能放在高于Ai的地方,求最高能建多高的太空電梯. 分析:多重背包,數組標記.顯然將ai小的放在下面會更優.所以先排序. code: const maxh41000; var cnt:array[0..maxh] of longint;h,…

網絡低俗詞_從“低俗小說”中汲取7堂課,以創建有影響力的作品集

網絡低俗詞重點 (Top highlight)Design portfolios and blockbuster movies had become more and more generic. On the design side, I blame all the portfolio reviews and articles shared by “experienced” designers that repeat the same pieces of advice regardless…

Vue多個組件映射到同一個組件,頁面不刷新?

問題 在做項目的過程中,有這么一個場景&#xff1a;多個組件通過配置路由,都跳轉到同一個組件,他們之間的區別就是,傳入的參數不同.請看router對象&#xff1a; userCenterLike: {name: user-center,params: {index: 0}},userCenterHistory: {name: user-center,params: {index…

尤雨溪寫的100多行的“玩具 vite”,十分有助于理解 vite 原理

1. 前言大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12想學源碼&#xff0c;極力推薦之前我寫的《學習源碼整體架構系列》jQuery、underscore、lodash、vuex、sentry、axios、redux、koa、vue-devtools、vuex4、koa-compose、…

webflow如何使用_我如何使用Webflow構建輔助項目以幫助設計人員進行連接

webflow如何使用I launched Designer Slack Communities a while ago, aiming to help designers to connect with likeminded people. By sharing my website with the world, I’ve connected with so many designers. The whole experience is a first time for me, so I wa…

atmega8 例程:T1定時器 CTC模式 方波輸出

/******************************************************************* * 函數庫說明&#xff1a;ATMEGA8 T1定時器 CTC模式 方波輸出 * 版本&#xff1a; v1.00 * 修改&#xff1a; 龐輝 蕪湖聯大飛思卡爾工作室…

antd的table進行列篩選時,更新dataSource,為什么table顯示暫無數據?

我想當然地認為只要dataSource改變&#xff0c;那么<Table>組件就會重新渲染&#xff0c;但是有一種特殊情況例外&#xff1a;在onFilter()中不寫篩選條件&#xff0c;在調用filterDropdown進行列篩選的時候&#xff0c;通過handleSearch改變/保存dataSource的狀態&#…

重新構想原子化 CSS

感謝印記中文的 QC-L[1] 對本文進行翻譯&#xff0c;英文原文: English Version[2]。本文會比往期文章相對長些。這是我個人的一個重大的工具發布&#xff0c;有許多內容我想談論。如果你能花些時間讀完&#xff0c;不勝感激&#xff0c;希望能對你有所幫助 :)推薦訪問 https:/…

cv::mat 顏色空間_網站設計基礎:負空間

cv::mat 顏色空間Let’s start off by answering this question: What is negative space? It is the “empty” space between and around the subjects of an image. In the context of web design, your “subjects” are the pictures, videos, text, buttons and other e…