成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用vue3.0,不需要build也可以

開發
前天,我寫了一篇簡短的文章,描述了如何創建一個簡單的 Vue JS 應用程序,而不需要任何構建。人們對此很感興趣,并給予了很多反饋。許多讀者問,在即將發布的 Vue 3版本中,是否可能出現類似的壯舉。答案是肯定的。而且,使用 Vue 3,你可以走得更遠,不需要任何構建過程就可以享受漸進式 web 框架的力量。

關于 Vue 2版本的原始文章可以在 https://letsdebug.it/post/minimalistic-Vue 網站上找到。下面我們將描述如何使用 Vue 3實現類似的設置

[[342745]]

這篇文章的源代碼可以在 https://bitbucket.org/letsdebugit/minimalistic-vue-3中找到,你可以在這里運行這個示例應用程序

應用程序設計
與 Vue 2的例子類似,我們將創建一個帶有頁眉、內容區域和頁腳的單頁面 web 應用程序。在內容區域有一條消息和一個按鈕。當用戶單擊按鈕時,消息將發生變化。UI 由定制 HTML 標記表示的 Vue 組件構成。

工程項目結構
該項目的結構與 Vue 2版本完全相同: 

  1. index.html 
  2. index.js 
  3. index.css 
  4. header/ 
  5.     header.js 
  6.     header.css 
  7. content/ 
  8.     content.js 
  9.     content.css 
  10. footer/ 
  11.     footer.js 
  12.     footer.css 

我們的邏輯 UI 組件清楚地反映在項目的目錄結構中。在組件的代碼中有一些變化,如下所述。

自力更生
當瀏覽器加載 index. html 時,會發生以下情況:

vue3.0庫是從 CDN 倉庫獲取的https://unpkg.com/vue@3.0.0-rc.8
獲取組件樣式
應用程序模塊從index.js開始然后被執行
請注意,在編寫 Vue 3的時候,Vue 3還沒有正式發布。因此,我們在這里使用最新的可用版本3.0.0-rc. 8。當官方發布時,你將不得不相應地改變 URL。

當執行 index.js 時,它導入并注冊包含我們的組件的后續模塊:

  1. Content from 內容來自/content/content.js 
  2. Header from 標題來自/header/header.js 
  3. Footer from 的頁腳/footer/footer.js 

最后,它創建應用程序實例,并將其掛載到index.html內的<main>標記中。

組件
有了這個框架的新版本,我們可以利用新的函數式編程模型,也就是復合 API。我們將使用 setup()函數來代替數據、計算和方法部分,它將連接所有組件的內部。為了確保數據傳播到 UI 并對更改做出反應,我們將使用 composition api 提供的reactive 和 computed。

組件代碼的結構如下:

  1. const template = ` 
  2.   <div> 
  3.   ... 
  4.   </div> 
  5. export default { 
  6.   template, 
  7.   setup () { 
  8.   } 

作為一個例子,我們提供了 footer 組件,它在左邊顯示一些文本,在右邊顯示一個滴答作響的時鐘:

  1. const { reactive, computed } = Vue 
  2. const template = ` 
  3.   <footer> 
  4.     <div class="left"
  5.       <slot></slot> 
  6.     </div> 
  7.     <div class="middle"
  8.     </div> 
  9.     <div class="right"
  10.       Current time: <b>{{ state.nowString }}</b> 
  11.     </div> 
  12.   </footer> 
  13. export default { 
  14.   template, 
  15.   setup () { 
  16.     const state = reactive({ 
  17.       now: new Date(), 
  18.       nowString: computed(() => state.now.toTimeString().substr(0, 8)) 
  19.     }) 
  20.     window.setInterval(() => { 
  21.       state.now = new Date() 
  22.     }, 1000) 
  23.     return { state } 
  24.   } 

主要的應用程序組件在 index.js 文件中。它的任務是為所有組件分配定制的 HTML 標記,比如 < app-header > 或 < app-footer > 。

  1. import Header from './header/header.js' 
  2. import Content from './content/content.js' 
  3. import Footer from './footer/footer.js' 
  4. const { createApp } = Vue 
  5. const App = createApp({ 
  6.   components: { 
  7.     'app-header': Header, 
  8.     'app-content': Content, 
  9.     'app-footer': Footer 
  10.   } 
  11. window.addEventListener('load', () => { 
  12.   App.mount('main'
  13. }) 

然后使用這些自定義標記在 index. html 文件中構建應用程序 UI。我們最終得到了一個簡單易懂的用戶界面:

  1. <!doctype html> 
  2. <html> 
  3. <head> 
  4.   <meta charset="utf-8"
  5.   <title>Minimalistic Vue 3</title> 
  6.   <link rel="stylesheet" href="index.css"
  7.   <link rel="stylesheet" href="header/header.css"
  8.   <link rel="stylesheet" href="content/content.css"
  9.   <link rel="stylesheet" href="footer/footer.css"
  10.   <script src="https://unpkg.com/vue@3.0.0-rc.8"></script> 
  11.   <script src="index.js" type="module"></script> 
  12. </head> 
  13. <body> 
  14.   <main> 
  15.     <app-header bg-color="#c5cae2"
  16.     </app-header> 
  17.     <app-content> 
  18.     </app-content> 
  19.     <app-footer> 
  20.       (c) Tomasz Waraksa, Dublin, Ireland 
  21.     </app-footer> 
  22.   </main> 
  23. </body> 
  24. </html> 

最后,我們幾乎擁有了 Vue 3的全部功能,包括了不起的 Composition API,而且沒有任何構建過程的復雜性。要部署這個應用程序,我們只需將文件復制到一個 web 服務器。

 

責任編輯:姜華 來源: 小丑的小屋
相關推薦

2024-03-01 11:32:22

Vue3APIVue.js

2023-01-28 13:34:47

Web 3.0區塊鏈互聯網

2020-08-05 11:53:41

數據代碼自動化

2020-10-13 08:24:31

Vue3.0系列

2015-09-30 09:57:53

天分熱情工程師

2017-03-13 13:54:40

戴爾

2018-05-07 14:11:15

RootAndroidXposed

2021-04-02 10:30:18

Vue3.0前端代碼

2012-08-23 09:50:07

測試測試人員軟件測試

2009-11-23 12:45:22

2020-08-25 09:50:35

Vue3.0命令前端

2022-02-06 22:13:47

VueVue3.0Vue項目

2023-10-16 07:42:10

前端構建高性能

2019-07-17 06:17:01

UbuntuUbuntu LTSNvidia驅動

2022-08-22 15:10:38

JSCSS頁面滾動

2015-08-20 10:56:19

算法界面開發

2013-12-02 09:43:29

字符串編程

2024-02-22 09:00:00

LogitMat數據集算法

2022-06-07 17:01:31

UI框架前端

2020-07-28 08:28:07

JavaScriptswitch開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品片| 国产在线精品一区二区 | 亚洲一av | 91在线一区二区三区 | 青草久久免费视频 | 天堂一区二区三区 | 中文字幕日韩在线 | 成人在线精品 | 亚洲一区在线播放 | 亚洲一区不卡在线 | 福利视频三区 | 日日夜夜精品 | 99福利视频 | 伊人亚洲 | 成人精品视频在线观看 | 皇色视频在线 | 男人的天堂视频网站 | 中文字字幕一区二区三区四区五区 | 国产精品久久久亚洲 | 伊色综合久久之综合久久 | 一区二区激情 | 国产一区二区在线免费观看 | 亚洲欧美激情国产综合久久久 | 国产午夜精品一区二区三区四区 | 中文字幕国产高清 | 色吊丝2288sds中文字幕 | 国产精品免费一区二区三区四区 | 欧产日产国产精品视频 | 青娱乐自拍 | 亚洲精品久久久蜜桃 | av电影一区 | 一区二区三区日韩 | 国产精品美女久久久 | 亚洲午夜精品 | 欧美日产国产成人免费图片 | 国产一在线观看 | 午夜精品一区二区三区在线观看 | 日韩精品视频在线 | 精品国产精品 | 国产成人av在线播放 | 一区二区三区国产好 |