
- Clojure 教程
- Clojure - 首頁
- Clojure - 概述
- Clojure - 環境
- Clojure - 基本語法
- Clojure - REPL
- Clojure - 資料型別
- Clojure - 變數
- Clojure - 運算子
- Clojure - 迴圈
- Clojure - 決策
- Clojure - 函式
- Clojure - 數字
- Clojure - 遞迴
- Clojure - 檔案 I/O
- Clojure - 字串
- Clojure - 列表
- Clojure - 集合
- Clojure - 向量
- Clojure - 對映
- Clojure - 名稱空間
- Clojure - 異常處理
- Clojure - 序列
- Clojure - 正則表示式
- Clojure - 斷言
- Clojure - 解構
- Clojure - 日期和時間
- Clojure - 原子
- Clojure - 元資料
- Clojure - StructMaps
- Clojure - 代理
- Clojure - 觀察者
- Clojure - 宏
- Clojure - 參考值
- Clojure - 資料庫
- Clojure - Java 介面
- Clojure - 併發程式設計
- Clojure - 應用
- Clojure - 自動化測試
- Clojure - 庫
- Clojure 有用資源
- Clojure - 快速指南
- Clojure - 有用資源
- Clojure - 討論
Clojure - 應用
Clojure 有一些貢獻的庫,這些庫可以建立桌面和基於 Web 的應用程式。讓我們討論一下它們中的每一個。
序號 | 應用及描述 |
---|---|
1 | 桌面 – See-saw
See-saw 是一個可用於建立桌面應用程式的庫。 |
2 | 桌面 – 更改文字的值
視窗中內容的值可以透過使用‘config!’選項來更改。在下面的示例中,config!選項用於將視窗內容更改為“Good Bye”的新值。 |
3 | 桌面 – 顯示模式對話方塊
可以透過使用 see-saw 類的 alert 方法顯示模式對話方塊。該方法接受需要在模式對話方塊中顯示的文字值。 |
4 | 桌面 – 顯示按鈕
按鈕可以在 button 類的幫助下顯示。 |
5 | 桌面 – 顯示標籤
標籤可以在 label 類的幫助下顯示。 |
6 | 桌面 – 顯示文字欄位
文字欄位可以在 text 類的幫助下顯示。 |
Web 應用 - 簡介
要在 Clojure 中建立 Web 應用,您需要使用 Ring 應用庫,該庫可在以下連結找到 https://github.com/ring-clojure/ring
您需要確保從網站下載必要的 jar 檔案,並確保將其作為 Clojure 應用的依賴項新增。
Ring 框架提供以下功能 -
設定使 http 請求作為常規 Clojure HashMap 進入您的 Web 應用,並且同樣地使您可以將響應作為 HashMap 返回。
提供一個規範,準確描述這些請求和響應對映應該是什麼樣子。
自帶一個 Web 伺服器(Jetty)並將您的 Web 應用連線到它。
Ring 框架可以自動啟動 Web 伺服器並確保 Clojure 應用在此伺服器上執行。然後還可以使用 Compojure 框架。這允許您建立路由,現在大多數現代 Web 應用都是這樣開發的。
建立您的第一個 Clojure 應用 - 下面的示例顯示瞭如何在 Clojure 中建立您的第一個 Web 應用。
(ns my-webapp.handler (:require [compojure.core :refer :all] [compojure.route :as route] [ring.middleware.defaults :refer [wrap-defaults site-defaults]])) (defroutes app-routes (GET "/" [] "Hello World") (route/not-found "Not Found")) (def app (wrap-defaults app-routes site-defaults))
讓我們看一下程式的以下方面 -
‘defroutes’用於建立路由,以便對 Web 應用的不同路由的請求可以定向到 Clojure 應用中的不同函式。
在上面的示例中,“/”被稱為預設路由,因此當您瀏覽到 Web 應用的根目錄時,字串“Hello World”將傳送到 Web 瀏覽器。
如果使用者訪問任何 Clojure 應用無法處理的 url,則它將顯示字串“Not Found”。
當您執行 Clojure 應用時,預設情況下您的應用將載入為 localhost:3000,因此如果您瀏覽到此位置,您將收到以下輸出。

Web 應用 – 向您的 Web 應用新增更多路由
您還可以向您的 Web 應用新增更多路由。以下示例顯示瞭如何實現此目的。
(ns my-webapp.handler (:require [compojure.core :refer :all] [compojure.route :as route] [ring.middleware.defaults :refer [wrap-defaults site-defaults]])) (defroutes app-routes (GET "/" [] "Hello World") (GET "/Tutorial" [] "This is a tutorial on Clojure") (route/not-found "Not Found")) (def app (wrap-defaults app-routes site-defaults))
您可以看到,在應用中新增路由就像新增另一個帶有 url 路由的 GET 函式一樣簡單。(GET "/Tutorial" [] "This is a tutorial on Clojure")
如果您瀏覽到https://:3000/Tutorial位置,您將收到以下輸出。
