iT邦幫忙

2022 iThome 鐵人賽

DAY 27
0
自我挑戰組

文科生轉職React前端工程師的菜鳥學習日記系列 第 27

[Day27] 菜鳥學習日記,React的To-Do List專案Part3

  • 分享至 

  • xImage
  •  

接續昨天React的To-Do List專案PartII的功能地圖,今天來畫我們的前端畫面的線稿圖,使用免費規劃工具為Day17介紹的whimsical,簡單易上手,可快速將腦袋中的畫面視覺化,也可以快速分享給你的團隊,歡迎有興趣的朋友到這篇文章查看使用教學[Day17] 網站專案設計規劃流程,第二步從功能地圖開始

React To-Do List專案

線稿圖Wireframe

可以看到我們有個輸入框,讓我們新增To-Do的任務,下方為現有的To-Do List清單,右邊Actions為可以做的動作,有更新和刪除的功能。
cherylcloud_todolist_wireframe01

刻畫面

接下來就是根據上方的Wireframe在我們的程式中刻出我們To-Do List專案的靜態畫面
進到我們前天在本地端啟用的React專案,這邊我會先刪除沒有使用的的程式,如果不刪也沒關係

App.test.js
logo.svg
reportWebVitals.js
setupTest.js

刪除前
create_react_app_to_do_list_project_directory_structure_delete_unused
刪除後,網站進入點的index.js也會做變更,將原本有帶入要測試的程式刪除(如下圖)
cherylcloud_todolist_delete_unused_file
接下來進到App.js檔案中
to_do_list_app.js
將原本的程式碼全部刪除
to_do_list_app.js_deleted
在App.js寫入下方程式碼

import React from 'react'

const App = () => {
  return (
    <div>Hello React World</div>
  )
}

export default App

確認瀏覽器會同步正常顯示我們所修改的內容
to_do_list_app.js_hello_react
接下來引入App.css檔案,準備來修改我們的To-Do List外觀

import React from 'react'
import "./App.css"

const App = () => {
  return (
    <div className="App">Hello React World</div>
  )
}

export default App

開啟App.css將原始的樣式通通刪除,重新開始輸入css樣式
這邊我修改了將App改為十分居中,背景改成漸層,文字改成白色

.App {
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background: linear-gradient(#e66465, #9198e5);
  color: white;
}

顯示效果如下方所示
to_do_list_app.css_init
修改App.js的內容為下方

import React from 'react'
import "./App.css"

const App = () => {
  return (
    <div className="App">
      <div className='container'>
        <h1>To-Do List</h1>
      </div>
    </div>
  )
}

export default App

修改App.css的內容如下方,新增container的樣式

.container {
  display: flex;
  height: 80vh;
  border: 2px solid white;
  padding: 20px;
  flex-direction: column;
  align-items: center;
  font-size: 20px;
  color: white;
}

顯示效果如下方
to_do_list_app.css_app_container
修改App.js將待辦事項的靜態內容顯示出來,包含輸入框、新增按紐、待辦顯示的內容,修改和刪除的按紐都加進入檔案中

 {/* 待辦事項的輸入表單 */}
        <form className='toDoForm'>
          {/* 新增待辦事項的輸入框 */}
          <input type="text"/>
          {/* 新增按鈕 */}
          <button>Add</button>
        </form>
        {/* 待辦清單顯示內容 */}
        <ul className='allToDoList'>
          <li  className='singleTodoTask'>
            <span className='toDoText'>do the dishes</span>
            <button>Update</button>
            <button>Delete</button>
          </li>
        </ul>

App.css也加入表單的樣式修改,包含輸入框和按紐

.toDoForm {
  display: flex;
  justify-content: space-around;
  width: 450px;
}

input {
  width: 80%;
  padding: 10px;
  border: none;
}

button {
  border: none;
  padding: 10px;
  margin: 0 5px;
}

.allToDoList {
  list-style: none;
  margin: 0;
  padding: 0;
}
.singleTodoTask {
  margin: 10px 0;
  padding: 10px 20px;
  width: 450px;
  display: flex;
  align-items: center;
}
.toDoText {
  flex: 1;
}

修改完程式後存檔,瀏覽器同步顯示的效果如下
to_do_list_app.css_todoform_button_input

今天先將靜態畫面完成,明天開始進入React的useState的hook function使用。
靜態的To-Do List專案畫面的程式碼,我放在codesandbox上。

這是我第一次參加鐵人賽,希望透過這30天督促自己脫離菜味,內容預計會有JS基礎,API串接,用React完成一個可以新增、修改、刪除、查詢的網站,如果有錯誤歡迎指正,我會盡快修改。


上一篇
[Day26] 菜鳥學習日記,React的To-Do List專案Part2
下一篇
[Day28] 菜鳥學習日記,React的To-Do List專案Part4
系列文
文科生轉職React前端工程師的菜鳥學習日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言