<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          又出新神器,一套代碼適應(yīng)多端!

          共 3686字,需瀏覽 8分鐘

           ·

          2021-12-11 11:11

          最近正在考慮開發(fā)一款A(yù)PP,今天就看到一款基于多端的 UI 調(diào)試工具,一套代碼適應(yīng)多端,真的是太棒了,下面分享給大家。

          前言

          該工具是大名鼎鼎的?JetBrains?公司新推出的,名曰:“Jetpack Compose for Web”,官方介紹稱此項目基于 Google 現(xiàn)代 UI 工具包 Jetpack Compose,支持使用 Kotlin 編寫響應(yīng)式 Web UI。

          Jetpack Compose?是用于構(gòu)建原生界面的新款 Android 工具包。它可簡化并加快 Android 上的界面開發(fā)。使用更少的代碼、強大的工具和直觀的 Kotlin API,快速讓應(yīng)用生動而精彩。


          UI 代碼和預(yù)覽如下圖所示:
          94_1.png

          據(jù)介紹,Jetpack Compose for Web 可簡化并加速 Web 應(yīng)用的 UI 開發(fā),目標(biāo)是在 Web、桌面和 Android APP 之間實現(xiàn) UI 代碼共享,一套代碼適應(yīng)多端。目前處于技術(shù)預(yù)覽階段。

          fun?greet()?=?listOf("Hello",?"Hallo",?"Hola",?"Servus").random()

          renderComposable("greetingContainer")?{
          ????var?greeting?by?remember?{?mutableStateOf(greet())?}
          ????Button(attrs?=?{?onClick?{?greeting?=?greet()?}?})?{
          ????????Text(greeting)
          ????}
          }
          Result:?Servus
          94_2.png

          使用 Compose for Web 構(gòu)建用戶界面

          借助 Compose for Web,開發(fā)者通過使用 Kotlin 并應(yīng)用 Jetpack Compose 的概念和 API 為 Web 構(gòu)建響應(yīng)式用戶界面,以表達(dá)應(yīng)用程序的狀態(tài)、行為和邏輯。

          可組合的 DOM API

          • 通過 DOM 元素和 HTML 標(biāo)簽表達(dá)設(shè)計和布局
          • 使用類型安全的 HTML DSL 構(gòu)建 UI 表示形式
          • 通過使用類型安全的 CSS DSL 創(chuàng)建樣式表來完全控制應(yīng)用程序的外觀
          • 通過 DOM 子樹與其他 JavaScript 庫集成
          fun?main()?{
          ????renderComposable("root")?{
          ????????var?platform?by?remember?{?mutableStateOf("a?platform")?}
          ????????P?{
          ????????????Text("Welcome?to?Compose?for?$platform!?")
          ????????????Button(attrs?=?{?onClick?{?platform?=?"Web"?}?})?{
          ????????????????Text("...for?what?")
          ????????????}
          ????????}
          ????????A("https://www.jetbrains.com/lp/compose-web")?{
          ????????????Text("Learn?more!")
          ????????}
          ????}
          }
          94_3.png

          具有 Web 支持的多平臺小部件

          通過利用 Kotlin 的 Expect-actual 機(jī)制來提供特定于平臺的實現(xiàn),從而使用和構(gòu)建可在 Android、桌面和 Web 上運行的 Compose 小部件

          處于實驗性階段的一組布局原語 (layout primitives) 和API,這些原語和 API 與 Compose for Desktop/Android 的功能相似

          示例代碼

          使用 Composable DOM 編寫簡單的計數(shù)器

          fun?main()?{
          ????val?count?=?mutableStateOf(0)
          ????renderComposable(rootElementId?=?"root")?{
          ????????Button(attrs?=?{
          ????????????onClick?{?count.value?=?count.value?-?1?}
          ????????})?{
          ????????????Text("-")
          ????????}
          ????????Span(style?=?{?padding(15.px)?})?{?/*?we?use?inline?style?here?*/
          ????????????Text("${count.value}")
          ????????}
          ????????Button(attrs?=?{
          ????????????onClick?{?count.value?=?count.value?+?1?}
          ????????})?{
          ????????????Text("+")
          ????????}
          ????}
          }

          聲明和使用樣式表

          object?MyStyleSheet?:?StyleSheet()?{
          ????val?container?by?style?{?/*?define?a?class?`container`?*/
          ????????border(1.px,?LineStyle.Solid,?Color.RGB(255,?0,?0))
          ????}
          }

          @Composable
          fun?MyComponent()?{
          ????Div(attrs?=?{
          ????????classes(MyStyleSheet.container)?/*?use?`container`?class?*/
          ????})?{
          ????????Text("Hello?world!")
          ????}
          }

          fun?main()?{
          ????renderComposable(rootElementId?=?"root")?{
          ????????Style(MyStyleSheet)?/*?mount?the?stylesheet?*/
          ????????MyComponent()
          ????}
          }

          聲明和使用 CSS 變量

          object?MyVariables?:?CSSVariables?{
          ????val?contentBackgroundColor?by?variable()?/*?declare?a?variable?*/
          }

          object?MyStyleSheet:?StyleSheet()?{
          ????val?container?by?style?{
          ????????MyVariables.contentBackgroundColor(Color("blue"))?/*?set?its?value?*/
          ????}

          ????val?content?by?style?{
          ????????backgroundColor(MyVariables.contentBackgroundColor.value())?/*?use?it?*/
          ????}
          }

          @Composable
          fun?MyComponent()?{
          ????Div(attrs?=?{
          ????????classes(MyStyleSheet.container)
          ????})?{
          ????????Span(attrs?=?{
          ????????????classes(MyStyleSheet.content)
          ????????})?{
          ????????????Text("Hello?world!")
          ????????}
          ????}
          }


          --本文完--


          最近給大家找了??Java大型分布式網(wǎng)上預(yù)約掛號系統(tǒng)全棧前后端開發(fā)項目


          本課程項目是一個網(wǎng)上預(yù)約掛號系統(tǒng),包含后臺管理系統(tǒng)和前臺用戶系統(tǒng),采用前后端分離開發(fā)模式。項目技術(shù)應(yīng)用廣泛,涵蓋微服務(wù)、全棧、集群、分布式、高并發(fā);技術(shù)應(yīng)用場景合理,并非多技術(shù)的盲目堆疊;業(yè)務(wù)場景貼近實際,按照市場需求開發(fā)。項目后端技術(shù)棧,采用主流的SpringBoot+SpringCloud微服務(wù)架構(gòu),全面使用了目前流行的NoSQL技術(shù),使用Redis緩存數(shù)據(jù),使用MongoDB實現(xiàn)高并發(fā)讀寫,整合消息中間件RabbitMQ提高訂單的并發(fā)量,同時還整合了定時任務(wù),實現(xiàn)就醫(yī)提醒功能,綜合應(yīng)用了阿里云OSS,短信服務(wù)以及微信登錄、微信支付,同時增加了微信退款功能。項目前端技術(shù)棧,采用主流前端框架Vue,使用Nuxt和vue-admin-template模板搭建頁面環(huán)境,采用Element-ui進(jìn)行頁面布局,Npm進(jìn)行依賴管理,axios進(jìn)行異步調(diào)用,使用ECharts進(jìn)行圖表顯示,實現(xiàn)全棧開發(fā)。


          資源,怎么領(lǐng)取?


          掃二維碼,加我微信,回復(fù):掛號系統(tǒng)


          一定要備注:掛號系統(tǒng),不要急哦,工作忙完后就通過!




          如加不了的話,可以晚點再加哦~
          瀏覽 60
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本一极美女日bb\ | 蜜桃视频无码 | 777奇米狠狠色综合 | 青娱乐自拍视频 | 天堂在线在线 |