網站搜尋
在一個 Svelte 應用程式中,我有這個國家陣列:
let countries = [ { name:"Alegeria", status: "1" }, { name:"Bulgaria", status :"0" } ]注意 status 屬性是一個字串。我是這樣遍歷陣列的:
閱讀更多 →我有一個關於 Svelte 的問題,如果 Svelte 並沒有採用虛擬 DOM 或 Shadow DOM 機制,它是如何生成高性能應用的呢?因為 Svelte 只是一個編譯器,它生成純 JavaScript 的構建,這是否是 Svelte 的唯一重點,把代碼轉換為純 JavaScript 就能讓你獲得高性能的應用?那麼為什麼 React 或 Angular 會使用像虛擬 DOM 或 Shadow DOM 這樣的機制呢?
我知道這不是一個程式設計問題,但我想要答案,所以只好在這裡發帖,請不要刪除或專門處理這個帖子。我想了解內部原理
謝謝
對於大多數使用情況,Svelte 比 React/Angular 更快。
這是因為 Svelte 不使用虛擬 DOM。Svelte 框架的核心價值承諾是消除虛擬 DOM 的開銷。
虛擬 DOM 的額外負擔來自於框架需要以不同的格式構建節點,然後再執行差異比較。
閱讀更多 →
我正在嘗試在 Svelte 中創建一個 cookie(我也在使用 Svelte Kit)並訪問它。我想將這個 cookie 用於身份驗證,更具體地說,是用來存儲 JWT 令牌。
我已經嘗試實作純 JS 代碼,例如 getCookie() 和 setCookie(),如這裡 W3Schools - JavaScript Cookies 所示。但我無法訪問 document。我也嘗試過使用 cookie npm 套件的 serialize,如下面所示,我也嘗試過使用瀏覽器,如下面所示。
import { seria 閱讀更多 →
我正在使用 Typescript 開發一個 Svelte 專案,並想使用 Jest 結合 @testing-library/svelte 模組來測試 UI 元件。我無法正確匯入所有 Svelte 檔案,例如我的子元件,Jest 嘗試載入應用程式時就會一直停頓。
在 Svelte 元件中有一些 TypeScript 錯誤,通過這些錯誤的輸出,我可以看到哪些檔案實際上已經被加載。在加載 App.svelte 之後,程式就會凍結,並且不會加載任何子模組。
我不太確定錯誤出在哪裡,因為在這個錯誤之前,我遇到了一個類似 jest 的導入錯誤:測試套件運行失敗,SyntaxError: Unexpected token import,我通過將配置添加到 .babelrc 文件並添加預處理器來“解決”了這個問題。
閱讀更多 →我正在嘗試在 Svelte 中實現 TypeScript,並且在自定義元素的事件處理程序上遇到問題。當我寫類似這樣的東西時:
<CustomComponent on:itemclick={() => dispatch("item", item)} on:doSometing={onDoSomethingHandler} on:doSomethingElse={onDoSomethingElseHandler}> </CustomComponent>有趣的是:前兩個會產生錯誤:
物件類型為 'unknown'
但不是最後一個。當然,所有的方法(itemClick、doSomething、doSomethingElse)都是從 CustomComponent 派發的。無論我是否移除前兩個處理程序,錯誤就會消失。據我所知,這個問題只會發生在自訂元件上。但不
閱讀更多 →我一直在開發一個十六進位檢視器組件,能夠處理任意大的陣列顯示。預期數值可達數千萬。我已經讓這個組件大致運作,但有一個難以捉摸的錯誤困擾了我好幾天。
這個想法是只渲染當前在螢幕上可見的部分到 DOM。在視窗的上方和下方有間隔元素,它們模擬了未被渲染的單元格所佔據的空間。
相關元件可以在這裡找到: https://github.com/DamenH/hex-viewer/blob/master/src/lib/SmartDataGrid.svelte
此函數計算目前可視視口中陣列的起始和結束索引,然後將 visibleCells 更改為包含該範圍的值。
function updateVisibleCells() { let visibleAreaStart = dataGrid.scrollTop; let visibleAreaEnd = dataGrid.scrollTop + height; let startIndex = Math.floor 閱讀更多 →
在我的 Svelte 應用程式中,我正試圖允許使用者除了上傳檔案之外,也能上傳資料夾。到目前為止,我唯一找到的方法是使用 type="file" 的 input 標籤,並加入 webkitdirectory 屬性,但這不幸的是非標準的。Svelte 的 input 類型並沒有 webkitdirectory。程式碼可以運作,但我收到 TypeScript 錯誤訊息「Property 'webkitdirectory' does not exist on type 'SvelteInputProps'」。是否有可能擴展 S
閱讀更多 →
所以當我訪問 SvelteKit 的 post 端點時,如果我提交一些值而它們未通過驗證檢查,一切都能正常工作。它會返回正確的狀態和內容。然而,當它執行資料庫插入時,端點會返回 404 錯誤,但它實際上已經將使用者插入資料庫。我認為這是因為資料庫呼叫是非同步的,而 SvelteKit 並沒有等待結果返回,但不確定應該如何修改我的程式碼,使其等待並返回正確的 JSON 回應。
感謝任何幫助!
import type { EndpointOutput } from '@sv 閱讀更多 →我需要將 Google Analytics 添加到 SvelteKit 網站。Google 的說明是應將以下腳本添加到 <head> 標籤中,所以我想我可以直接將它添加到 app.html。問題是,我需要使用同意模式 (Consent Mode) 以遵守 GDPR 規範。為此,我需要能夠讀取和寫入某種變數來啟用或禁用分析功能。
就我所知,我無法從 <head> 標籤中存取任何變數。我也嘗試將相同的程式碼加入到 __layout.svelte 中的 <svelte:head> 標籤,但似乎我在那裡也無法存取變數。
我計劃使用商店來追蹤 cookie 同意,並將該值保存在本地儲存中,但我對其他解決方案也持開放態度。
這是應該添加到 <head> 標籤中的程式碼:
<!-- Global site tag (gtag 閱讀更多 →
註:自行回答
將資料從父元件傳遞給子元件。
可以將資料從父組件傳遞到任何深層子組件。