Svelte 綁定

如何在 Svelte 中使用綁定 使用 Svelte,您可以在數據和 UI 之間創建雙向綁定。 許多其他 Web 框架可以提供雙向綁定,這是一種非常常見的模式。 在表單中特別有用。 bind:value 讓我們從您通常會使用的最常見的綁定方式開始,您可以使用 bind:value 來應用它。您從組件狀態中獲取一個變量,並將它綁定到表單字段上: <script> let name = '' </script> <input bind:value={name}> 現在,如果 name 變量發生變化,輸入字段將更新其值。反之亦然:如果用戶更新表單,則 name 變量的值也會更改。 請注意,該變量必須使用 let/var 關鍵字定義,而不能使用 const,否則它無法被 Svelte 更新,因為 const 定義了一個值無法重新分配的變量。 bind:value 可以用於所有類型的輸入字段(type="number",type="email" 等),但它也適用於其他類型的字段,比如 textarea 和 select(稍後會詳細介紹 select)。 複選框和單選按鈕 複選框和單選按鈕(input 元素的 type="checkbox" 或 type="radio")允許以下 3 種綁定方式: bind:checked bind:group bind:indeterminate bind:checked 允許我們將一個值綁定到元素的選中狀態: <script> let isChecked </script> <input type=checkbox bind:checked={isChecked}> bind:group 對複選框和單選按鈕很有用,因為這些按鈕通常以組的形式使用。使用 bind:group,您可以將一個 JavaScript 數組關聯到一組複選框上,並根據用戶的選擇自動填充它。 以下是一個示例。goodDogs 數組根據我勾選的複選框填充:...

在Express中處理表單上傳的文件

如何在Express中管理存儲和處理通過表單上傳的文件 這是一個允許用戶上傳文件的HTML表單的示例: <form method="POST" action="/submit-form" enctype="multipart/form-data"> <input type="file" name="document" /> <input type="submit" /> </form> 不要忘記在表單中添加enctype="multipart/form-data",否則文件將無法被上傳 當用戶點擊提交按鈕時,瀏覽器會自動向與該頁面相同源頭的/submit-form URL 發送一個POST請求。瀏覽器將數據以multipart/form-data的形式而不是編碼的形式(即普通表單的application/x-www-form-urlencoded)發送出去。 在服務器端,處理multipart數據可能會很棘手且容易出錯,因此我們將使用一個名為formidable的實用庫。這是GitHub倉庫,它擁有超過4000顆星且得到良好的維護。 您可以使用以下命令來安裝它: npm install formidable 然後在您的Node.js文件中引入它: const express = require('express') const app = express() const formidable = require('formidable') 現在,在/submit-form路由的POST端點中,我們使用formidable.IncomingForm()實例化一個新的Formidable表單: app.post('/submit-form', (req, res) => { new formidable.IncomingForm() }) 在這樣做之後,我們需要能夠解析表單。我們可以通過提供一個回調函數來同步進行解析,這意味著所有文件都被處理,一旦formidable完成它們的處理,它就會使它們可用: app.post('/submit-form', (req, res) => { new formidable.IncomingForm().parse(req, (err, fields, files) => { if (err) { console.error('Error', err) throw err } console.log('Fields', fields) console.log('Files', files) for (const file of Object....

如何在PHP中使用表單

表單是Web平台允許用戶與頁面互動並將數據發送到服務器的方式。 以下是HTML中的一個簡單表單: <form> <input type="text" name="name" /> <input type="submit" /> </form> 你可以將其放置在名為index.php的文件中,就像名為index.html一樣。 PHP文件中允許你在其中編寫HTML,並使用一些“PHP填料”(即<?php ?>)來與客戶端進行通信。有時,PHP部分占據了整個頁面,這就是通過PHP生成所有HTML的方式-與我們現在所執行的相反。 所以,我們有這個生成基於純HTML的表單的index.php文件: 單擊提交按鈕將向相同的URL發送一個GET請求,通過查詢字符串將數據發送出去,請注意URL已更改為localhost:8888/?name=test: 我們可以添加一些代碼來檢查該參數是否設置,使用isset()函數: <form> <input type="text" name="name" /> <input type="submit" /> </form> <?php if (isset($_GET['name'])) { echo '<p>The name is ' . $_GET['name']; } ?> 看到了嗎?我們可以通過$_GET從GET請求的查詢字符串中獲取信息。 然而,你通常會使用表單執行POST請求: <form **method="POST"**> <input type="text" name="name" /> <input type="submit" /> </form> <?php if (isset($_POST['name'])) { echo '<p>The name is ' . $_POST['name']; } ?> 看,我們獲得了相同的信息,但URL未更改,表單信息未附加到URL上。 這是因為我們使用POST請求,這種方式將數據通過urlencoded數據發送到服務器。 正如之前提到的,PHP仍然會提供index.php文件,因為我們仍然向與表單相同的URL發送數據。 我們正在混合了很多代碼,我們可以將表單請求處理程序與生成表單的代碼分開。 因此,在index.php中,我們可以有以下內容: <form **method="POST" action="/post....

開始使用JSX

JSX是React引入的一個技術。讓我們深入了解一下。 JSX簡介 JSX入門 轉譯JSX JS in JSX 在JSX中使用HTML 您需要關閉所有標籤 駱駝命名法是新的標準 class變成className style屬性改變其語義 表單 React中的CSS 為什麼這比純CSS / SASS / LESS更受青睞? 這是首選解決方案嗎? JSX中的表單 value屬性和defaultValue屬性 更一致的onChange事件 JSX自動轉義 JSX中的空格 水平空格被修剪為1個 垂直空格被消除 在JSX中添加註釋 擴展屬性 如何在JSX中進行循環 JSX簡介 JSX是由React引入的一項技術。 儘管React在不使用JSX的情況下也可以正常工作,但它是與組件一起工作的理想技術,因此React從JSX中獲益良多。 起初,您可能會認為使用JSX就像混合HTML和JavaScript(以及CSS)。 但事實並非如此,因為使用JSX語法時,實際上是用JavaScript編寫一個組件UI的聲明語法。 您使用的不是字符串描述UI,而是使用JavaScript,這使您能夠做許多好事。 JSX入門 以下是如何定義包含字符串的h1標籤的示例: const element = <h1>Hello, world!</h1> 它看起來像JavaScript和HTML的奇怪混合,但實際上它是完全的JavaScript。 看起來像HTML,實際上是為了定義組件以及它們在標記中的定位而添加的語法糖。 在JSX表達式中,可以非常容易地插入屬性: const myId = 'test' const element = <h1 id={myId}>Hello, world!</h1> 只需注意,當屬性具有連字符(-)時,它會轉換為駝峰命名法。還有兩種特殊情況: class變成className for變成htmlFor 這是因為它們是JavaScript中的保留字。 以下是一個將兩個組件包裝到div標籤中的JSX片段的示例: <div> <BlogPostsList /> <Sidebar /> </div> 標籤始終需要關閉,因為這更像是XML而不是HTML(如果您還記得XHTML的日子,這將是熟悉的,但此後採用了HTML5鬆散語法)。在這種情況下,使用了自閉標籤。 請注意,我將2個組件包裝到div中。為什麼?因為**render()函數只能返回單個節點**,所以如果您要返回2個兄弟節點,只需添加一個父節點。它可以是任何標籤,不僅僅是div。 轉譯JSX 瀏覽器無法執行包含JSX代碼的JavaScript文件。它們必須首先轉換為常規JS。...