Elm - Tin nhắn
Thông báo là một thành phần trong kiến trúc Elm. Các thành phần này do Chế độ xem tạo ra để đáp ứng tương tác của người dùng với giao diện của ứng dụng. Tin nhắn thể hiện các yêu cầu của người dùng để thay đổi trạng thái của ứng dụng.
Cú pháp
--Message Syntax
type Message = some_message1 |some_message2 ...|some_messageN
dục vọng
Ví dụ sau đây là một ứng dụng truy cập đơn giản. Ứng dụng tăng và giảm giá trị của một biến đi 1 khi người dùng nhấp vào các nút Thêm và Trừ tương ứng.
Ứng dụng sẽ có 4 thành phần. Các thành phần được mô tả bên dưới:
Thông điệp
Thông báo cho ví dụ này sẽ là -
type Message = Add | Subtract
Mô hình
Mô hình đại diện cho trạng thái của ứng dụng. Trong ứng dụng bộ đếm, định nghĩa mô hình được đưa ra dưới đây; trạng thái ban đầu của bộ đếm sẽ bằng không.
model = 0
Lượt xem
Chế độ xem đại diện cho các yếu tố trực quan của ứng dụng. Dạng xem chứa hai nút (+) và (-). Thông báo Thêm và Trừ được tạo bởi Chế độ xem khi người dùng nhấp vào nút + và - tương ứng. Giá trị đã sửa đổi của mô hình sau đó được hiển thị bởi Chế độ xem.
view model =
-- invoke text function
h1[]
[ div[] [text "CounterApp from TutorialsPoint" ]
,button[onClick Subtract] [text "-"]
,div[][text (toString model)]
,button[onClick Add] [text "+"]
]
Cập nhật
Thành phần này chứa mã sẽ được thực thi cho mỗi thông báo được tạo bởi dạng xem. Điều này được hiển thị trong ví dụ dưới đây -
update msg model =
case msg of
Add -> model+1
Subtract -> model-1
Để tất cả chúng cùng nhau
Step 1- Tạo thư mục MessagesApp và tập tin MessagesDemo.elm
Step 2 - Thêm mã sau vào tệp cây du -
import Html exposing (..)
import Html.Events exposing(onClick)
model = 0 -- Defining the Model
--Defining the View
view model =
h1[]
[ div[] [text "CounterApp from TutorialsPoint" ]
,button[onClick Subtract] [text "-"]
,div[][text (toString model)]
,button[onClick Add] [text "+"]
]
--Defining the Messages
type Message = Add | Subtract
--Defining Update
update msg model =
case msg of
Add -> model+1
Subtract -> model-1
-- Define the main method
main =
beginnerProgram
{
model=model
,view=view
,update=update
}
Step 3 - Thực hiện elm make commandtrong thiết bị đầu cuối. Cácelm make command biên dịch mã và tạo tệp HTML từ tệp .elm đã tạo ở trên.
C:\Users\dell\elm\MessagesApp> elm make .\MessageDemo.elm
Some new packages are needed. Here is the upgrade plan.
Install:
elm-lang/core 5.1.1
elm-lang/html 2.0.0
elm-lang/virtual-dom 2.0.4
Do you approve of this plan? [Y/n] y
Starting downloads...
ΓùÅ elm-lang/html 2.0.0
ΓùÅ elm-lang/virtual-dom 2.0.4
ΓùÅ elm-lang/core 5.1.1
Packages configured successfully!
Success! Compiled 38 modules.
Successfully generated index.html
Step 4 - Mở index.html và xác minh hoạt động như hình dưới đây -