最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

搭建 OpenTiny 組件庫(kù)的 Playground 指導(dǎo)手冊(cè)

2023-07-24 17:03 作者:OpenTiny社區(qū)  | 我要投稿

1 知識(shí)背景

1.1 Vue框架

一個(gè)漸進(jìn)式框架,它易學(xué)易用,性能出色,在國(guó)內(nèi)推廣最好的三大前端框架中,位居首位!

1.2 OpenTiny組件庫(kù)

它在華為內(nèi)部演進(jìn)了9年,支撐了上千個(gè)項(xiàng)目的開發(fā)交付,它一套API同時(shí)支持Vue2和Vue3框架,有100 多個(gè)組件,6套主題,支持國(guó)際化能力,支持Vite和webpack環(huán)境的開發(fā)和構(gòu)建!
它是華為云的2022年貢獻(xiàn)給開源社區(qū)的一個(gè)新的Vue UI組件庫(kù),代碼托管在GitHub:?https://github.com/opentiny/tiny-vue,?歡迎大家來Star 和提Issue!
安裝包發(fā)布在Npm 公共倉(cāng)庫(kù),以及華為內(nèi)部中心倉(cāng),遵從MIT開源協(xié)議,大家可以自由安裝使用!
Opentiny組件庫(kù)官網(wǎng)文檔:https://opentiny.design/tiny-vue


圖1 opentiny介紹

1.3 組件庫(kù)的playgroud

Playground應(yīng)用其實(shí)是一個(gè)實(shí)時(shí)的組件預(yù)覽頁(yè)面,比如Vue官網(wǎng)就提供了“Vue演練場(chǎng)”的功能,鏈接:https://play.vuejs.org/?,它方便的提供了一個(gè)最小的Vue環(huán)境,能讓用戶嘗試寫一些Vue的代碼,并查看實(shí)時(shí)預(yù)覽結(jié)果!


圖2 Vue官方playground效果圖

它支持多文件,支持?Import Map?引入第三方組件腳本,支持實(shí)時(shí)編輯代碼,實(shí)時(shí)編譯、預(yù)覽以及代碼分享!組件庫(kù)的Playground就是要搭建一個(gè)應(yīng)用頁(yè)面,可以實(shí)時(shí)預(yù)覽某個(gè)組件庫(kù)的組件,可以通過它快速了解和嘗試每一個(gè)組件!

Vue 官方開源的Playground的組件---\@vue/repl,參考文檔:https://github.com/vuejs/repl#readme?。

2 如何搭建OpenTiny組件庫(kù)的playground的指導(dǎo)

今天的內(nèi)容就是:搭建一個(gè)OpenTiny組件庫(kù)的演練場(chǎng)。本次任務(wù)需要你熟悉前端,有Vue項(xiàng)目開發(fā)的經(jīng)歷才行。完成效果圖如下:


圖3 挑戰(zhàn)任務(wù)示意圖

請(qǐng)參考以下步驟來完成此次任務(wù):

2.1 建立新項(xiàng)目,并安裝依賴包

安裝nodejs 16+ , vscode等前端工具,然后使用 vite 來創(chuàng)建一個(gè)vue的javascript工程!

之后安裝Playground的組件和opentiny/vue組件的依賴包

并務(wù)必參考o(jì)pentiny/vue的安裝文檔,?https://opentiny.design/tiny-vue/zh-CN/os-theme/docs/installation?進(jìn)行配置項(xiàng)目。
目前大家已經(jīng)有一個(gè)標(biāo)準(zhǔn)的vue項(xiàng)目了,經(jīng)過npm intall, 之后,就可以npm run dev,啟動(dòng)并看到一個(gè)vue的示例工程。


圖四 vue的新工程初始頁(yè)面

2.2 創(chuàng)建頁(yè)面結(jié)構(gòu),引入所需要的變量

接下來刪除掉 HelloWorld.vue ,在main.js中, 移除style.css引用,我們只在App.vue中完成全部功能!App.vue的頁(yè)面結(jié)構(gòu)如下:


2.3 開發(fā)頂部功能

應(yīng)用的模板分為上下2部分,上面部分為標(biāo)題Logo和一組選擇功能以及分享按鈕!下面部分就是一個(gè)<Repl>?組件。我們先開發(fā)頂部功能,它的<template>代碼如下:


模板里已經(jīng)綁定了一組數(shù)據(jù)和方法,接下來,我們需要補(bǔ)充這些內(nèi)容到<script>部分。


至此,我們應(yīng)該能得到以下應(yīng)用,頂部的顯示開關(guān)和布局方向綁定了3個(gè)變量,但是版本選擇和分享的功能還沒有開發(fā)!


圖五 頂部功能效果圖

★ 經(jīng)過本步驟,我們學(xué)會(huì)了@opentiny/vue的組件的簡(jiǎn)單使用方法!

2.4 開發(fā)<Repl>組件,實(shí)現(xiàn)腳本預(yù)覽

首先在模板中,引入Repl標(biāo)簽,并且綁定前面的3個(gè)變量以及ReplStore 變量。在 header 結(jié)構(gòu)下面加入下面標(biāo)簽:

?


這里用到store變量和state.previewOptions, 所以在<script>部分,增加這些2處變量:


此時(shí)我們就得到一個(gè)可以聯(lián)動(dòng)的playground的原型了:在右邊編寫代碼,在左邊有實(shí)時(shí)預(yù)覽,操作頂部的功能,<repl>區(qū)域有響應(yīng),界面如下:

圖六 <Repl>組件效果圖

★ 經(jīng)過本步驟,我們學(xué)會(huì)了<Repl>的組件使用方法!

2.5 實(shí)現(xiàn)切換版本

切換版本就是要切換repl組件引用的importMap的腳本,以實(shí)現(xiàn)動(dòng)態(tài)切換@opentiny/vue的版本。 目前它發(fā)布了 3.8.0\~3.8.4等5個(gè)版本!在<script>中,加以下腳本 :


我們編寫了versionChange函數(shù),把它綁定到前面模板的<tiny-select>的 change事件上,這樣下拉變化后,會(huì)通知store設(shè)置新的importMap地址!
現(xiàn)在切換版本后,通過開發(fā)者工具能看到,它會(huì)立即請(qǐng)求相應(yīng)版本的@opentiny/vue的各個(gè)runtime腳本包。

★ 經(jīng)過本步驟,我們學(xué)會(huì)了Tiny-Select的組件的事件綁定以及設(shè)置store的importMap變量!

2.6 實(shí)現(xiàn)代碼分享

Repl組件是支持代碼分享的,它的原理是:store對(duì)象把內(nèi)部狀態(tài)序列化為base64編碼,把它拼在url的hash中分享給其它人。 當(dāng)頁(yè)面加載時(shí),發(fā)現(xiàn)hash有內(nèi)容,就知道這是store的狀態(tài),把它傳給store,store內(nèi)部會(huì)進(jìn)行反序列化。
我們應(yīng)用分享的時(shí)候,要記錄組件庫(kù)版本號(hào)和store狀態(tài),所以我們計(jì)劃用hash同時(shí)保存版本和base64的值: 3.8.4|eNqIVV9p.............


把share函數(shù)綁定給模板中的分享圖標(biāo)的click事件,這樣點(diǎn)擊圖標(biāo),就能把鏈接復(fù)制到剪切板中了, 再打開一個(gè)新頁(yè)簽,訪問分享鏈接。
在分享鏈接中打開的新頁(yè)面,當(dāng)前hash就有一個(gè)很長(zhǎng)的字符串了,這樣shareData就解析到版本和store序列化的后值,所以把shareData[1]的內(nèi)容賦值給store, 這樣就實(shí)現(xiàn)了分享功能,試一下能不能成功吧!

★ 經(jīng)過本步驟,我們學(xué)會(huì)了分享功能的設(shè)計(jì)以及store的序列化!

2.7 測(cè)試@opentiny/vue組件庫(kù)

下面是一個(gè)@opentiny/vue組件庫(kù)的使用示例,復(fù)制到應(yīng)用窗口,并修改腳本,驗(yàn)證功能是否正確。點(diǎn)擊分享按鈕,并復(fù)制到其它頁(yè)簽,看是否分享內(nèi)容了。


關(guān)于 OpenTiny

OpenTiny 是一套華為云出品的企業(yè)級(jí)組件庫(kù)解決方案,適配 PC 端 / 移動(dòng)端等多端,涵蓋 Vue2 / Vue3 / Angular 多技術(shù)棧,擁有主題配置系統(tǒng) / 中后臺(tái)模板 / CLI 命令行等效率提升工具,可幫助開發(fā)者高效開發(fā) Web 應(yīng)用。

核心亮點(diǎn):

  1. 跨端跨框架:使用 Renderless 無渲染組件設(shè)計(jì)架構(gòu),實(shí)現(xiàn)了一套代碼同時(shí)支持 Vue2 / Vue3,PC / Mobile 端,并支持函數(shù)級(jí)別的邏輯定制和全模板替換,靈活性好、二次開發(fā)能力強(qiáng)。

  2. 組件豐富:PC 端有80+組件,移動(dòng)端有30+組件,包含高頻組件 Table、Tree、Select 等,內(nèi)置虛擬滾動(dòng),保證大數(shù)據(jù)場(chǎng)景下的流暢體驗(yàn),除了業(yè)界常見組件之外,我們還提供了一些獨(dú)有的特色組件,如:Split 面板分割器、IpAddress IP地址輸入框、Calendar 日歷、Crop 圖片裁切等

  3. 配置式組件:組件支持模板式和配置式兩種使用方式,適合低代碼平臺(tái),目前團(tuán)隊(duì)已經(jīng)將 OpenTiny 集成到內(nèi)部的低代碼平臺(tái),針對(duì)低碼平臺(tái)做了大量?jī)?yōu)化

  4. 周邊生態(tài)齊全:提供了基于 Angular + TypeScript 的 TinyNG 組件庫(kù),提供包含 10+ 實(shí)用功能、20+ 典型頁(yè)面的 TinyPro 中后臺(tái)模板,提供覆蓋前端開發(fā)全流程的 TinyCLI 工程化工具,提供強(qiáng)大的在線主題配置平臺(tái) TinyTheme

聯(lián)系我們:

  • 官方公眾號(hào):OpenTiny

  • OpenTiny 官網(wǎng):opentiny.design/

  • OpenTiny 代碼倉(cāng)庫(kù):github.com/opentiny/

  • Vue 組件庫(kù):github.com/opentiny/ti…?(歡迎 Star)

  • Angluar組件庫(kù):github.com/opentiny/ng?(歡迎 Star)

  • CLI工具:github.com/opentiny/ti…?(歡迎 Star)


搭建 OpenTiny 組件庫(kù)的 Playground 指導(dǎo)手冊(cè)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
和田市| 田林县| 区。| 潢川县| 霍邱县| 泌阳县| 辰溪县| 巴楚县| 左云县| 手机| 东丰县| 桃江县| 英吉沙县| 广水市| 临汾市| 通河县| 兴城市| 锡林浩特市| 台山市| 佛山市| 汉川市| 桑植县| 攀枝花市| 舟曲县| 冷水江市| 海口市| 桐乡市| 红安县| 馆陶县| 墨玉县| 石首市| 衡南县| 宝清县| 锡林郭勒盟| 化德县| 西盟| 广安市| 吉首市| 临清市| 郁南县| 道孚县|