將Vue的數據存儲到localStorage使用Vuex

學習如何自動將Vuex數據存儲到localStorage或sessionStorage中。 在談到數據存儲時,有各種不同的方法可以持久化數據。 其中一種非常簡單,非常適合原型,就是使用Web Storage API:localStorage和sessionStorage。 使用Vue,您可以以多種方式使用該API。其中最簡單的方法之一是依賴於vuex-persist庫。 您可以使用npm或Yarn安裝它: npm install vuex-persist #或者 yarn add vuex-persist 打開Vuex存儲文件,添加以下代碼: import VuexPersist from 'vuex-persist' 初始化VuexPersist: const vuexPersist = new VuexPersist({ key: 'my-app', storage: window.localStorage }) key是在localStorage數據庫中使用的鍵。 使用sessionStorage替換localStorage以使用其他存儲系統(每個存儲系統都有其自身的特點,請參閱上面我提供的Web Storage API文檔)。 接下來,在初始化store時,將vuexPersist添加到Vuex插件列表中: const store = new Vuex.Store({ //...初始化 plugins: [vuexPersist.plugin] }) 就這樣!每次更改store,該庫將把數據持久化到瀏覽器中。 您可以在官方文檔中找到更多高級功能,但這些是入門的基礎內容。

將十進制數字轉換為二進制

如何快速將十進制數字轉換為二進制數字 最近我介紹了十進制數字系統(人類常用的系統)和二進制數字系統(機器常用的系統)。 在這篇教程中,我想解釋一下如何從十進制數字轉換為二進制數字。 對於整數和小數,我們有各自不同的轉換過程。 將十進制整數轉換為二進制 可以通過將十進制整數除以2來將其轉換為二進制。 取商,並繼續將商除以2,直到達到零為止。 每次執行這個除法時,注意“餘數”。現在將餘數列表反轉,即可獲得二進制形式的數字。 讓我們舉個例子,我想將29轉換為二進制: [29\div2 = 14] 餘數為 1 [14\div2 = 7] 餘數為 0 [7\div2 = 3] 餘數為 1 [3\div2 = 1] 餘數為 1 [1\div2 = 0] 餘數為 1 表示十進制數字29的二進制數字為 11101。 再舉個例子,將145十進制轉換為二進制: [145\div2 = 72] 餘數為 1 [72\div2 = 36] 餘數為 0 [36\div2 = 18] 餘數為 0 [18\div2 = 9] 餘數為 0 [9\div2 = 4] 餘數為 1 [4\div2 = 2] 餘數為 0 [2\div2 = 1] 餘數為 0...

將文字保存到 Node.js 中的文件中

所以您想使用 Node.js 將一些文字保存到文件中。 非常簡單: import fs from 'node:fs' const text = 'yo' fs.writeFile('text.txt', text, (err) => { if (err) { console.error(err) } console.log('done') })

將別名和其他配置永久保存在Fish Shell中

備忘錄:無論在Fish Shell(或任何其他配置)中創建別名時,請將它們添加到~/.config/fish/config.fish文件中。 這樣它們就能在系統重啟後持久保存。 例如,我將ls設置為exa的別名,並將cat設置為bat的別名:

將所有 Node 套件的相依性更新至最新版本

你想知道如何將存放在 package.json 檔案中的所有 npm 套件的相依性更新至其最新可用版本嗎? 當你使用 npm install <packageName> 安裝套件時,最新可用版本的套件會被下載並放置在 node_modules 資料夾中,同時也會在目前資料夾中的 package.json 和 package-lock.json 檔案中新增對應的項目。 npm 會計算這些相依性並安裝最新可用的版本。 假設你安裝了一個名為 cowsay 的酷炫命令列工具,可以讓一隻牛說出一些事情。 當你執行 npm install cowsay 時,以下項目會被新增至 package.json 檔案: { "dependencies": { "cowsay": "^1.3.1" } } 以下是 package-lock.json 的相關內容,為了清晰起見,我移除了巢狀相依性的部分: { "requires": true, "lockfileVersion": 1, "dependencies": { "cowsay": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/cowsay/-/cowsay-1.3.1.tgz", "integrity": "sha512-3PVFe6FePVtPj1HTeLin9v8WyLl+VmM1l1H/5P+BTTDkMAjufp+0F9eLjzRnOHzVAYeIYFF5po5NjRrgefnRMQ==", "requires": { "get-stdin": "^5.0.1", "optimist": "~0.6.1", "string-width": "~2.1.1", "strip-eof": "^1.0.0" } } } } 這兩個檔案告訴我們,我們安裝了 cowsay 的 1....

將時間和金錢分離

如何讓你的收入與你工作的小時數無關,而與所售出的產品數量有關 作為員工或自由職業者,你的金錢與你實際工作的時間密切相關。這意味著時間就是金錢。你有一個合約規定你必須工作的最低天數和小時數嗎?那麼你實際上正在按小時計酬。自由職業者按小時計酬,如果不工作,就沒有收入,這顯然會引起很多問題。 這就是將產品推向市場的力量所在:你的收入與你工作的小時數無關,而與所售出的產品數量有關。如果產品是數字化的,一旦產品完成,你甚至無需固定成本來複製它,因此你可以隨意出售同一個數字拷貝的產品。 假設你花了三個月的時間寫一本電子書,你決定在亞馬遜上出售它。一旦出版,這本書將永遠待售,而你不需要再做任何事情。對於一個軟件產品也是一樣的,除了修復錯誤和引入新功能的更新之外。 當然,製作產品本身是最重要的固定成本。在投入時間和資源開發產品之前,你需要有相當的把握,產品將會有銷售。你不能只依賴直覺或者自己的想法,而沒有先進行測試,否則你的產品雖然已經準備好待購買,但由於缺乏真實需求,卻無人購買。

將部落格托管到 Cloudflare Pages

正如我在 YouTube 上发布的视频 中所预测的那样,上周我将部落格从 Netlify 迁移到了 Cloudflare Pages。 我有一个主要的原因,那就是带宽费用。从去年七月开始,我每个月都需要支付 Netlify 的费用。 我很感谢 Netlify 为我提供的服务,但我必须结束这种情况。每次我要支付额外的带宽费用就是 20 美元。从 2020 年 7 月开始,一直到 2021 年 10 月,我一共支付了 340 美元才能保持部落格运行。部落格是消耗最多带宽的事物。 这是一个早就应该改变的决定。 我通常会对这样的决定犹豫不决,因为这是一个大的改变。我不想改变本已运行得很好的东西。 我也不想每年花费 240 美元,而有些服务可以免费提供相同的服务。 于是乎,Cloudflare Pages 登场。他们提供免费的带宽以及基本相同的服务。 Netlify 是一个出色的 JAMStack 服务商,提供了很多我甚至都没有使用到的功能,比如高级团队功能、身份验证、表单、分割测试等。 而我只是使用其中的基本功能:部署静态网站而已。 Cloudflare Pages 更加精简。它没有那些功能,但却提供了两个 Netlify 不提供的东西。 首先是免费的分析功能。Netlify 也有分析功能,但我需要付费每月 9 美元,这不是我想要的。 另一个是,Netlify 有 7 个 CDN 节点,而 Cloudflare Pages 有超过 200 个。这意味着网站在全球更多地方加载得更快。 我在视频中详细介绍了我迁移到 Cloudflare Pages 的过程,所以在这里我不再赘述。如果你对此感兴趣,请观看视频。 到目前为止,我对这次迁移非常满意。 我首先将部落格迁移到了 Cloudflare Pages,然后也将一些用于课程的网站迁移到了那里,因为它们是子域名,我让 Cloudflare 自动处理了所有的配置。 但是我还有很多其他网站托管在 Netlify 上,它们可能会一直留在 Netlify 上。...

將開發者的生活「住進車裡」

我想開始一系列關於以開發者身份過著車居生活的文章! 何謂「車居生活」,以及這與本部落格有何關聯呢? 車居生活基本上就是住在車裡的意思。之所以在這裡談論這個,是因為這是我喜歡做的一部分。我可以在任何地方工作,因此也可以在車子裡工作。這是完全可行的。 車居生活有很多不同的方式。我對於理想的車居生活有自己的想法,你也會有你自己的想法。 有些人全職住在車裡。我不是。我不是一年365天住在車裡的人。我只是用它來做短途或長途旅行。可以是一個長週末,整個星期,或連續很多週。每次都很好玩,但旅行時間越長,就越棒。我最好的旅行記憶通常都是一個月的旅行。 在這一系列的文章中,我將討論我作為一位開發者在車裡生活和工作的經歷。 談到車輛,改變你車居生活體驗的關鍵是你所選擇的車輛。 我看過各種各樣的例子。從小汽車、迷你商務車、大眾運輸車,有些有彈起蓋、有些沒有;到較大的貨車、房車,小型或非常大型的,甚至到4x4越野車。 我位於中等級別。我擁有一輛5.4米(17.7英尺)的菲亞特Ducato車,美國稱為RAM ProMaster,其他品牌也有銷售,比如雪鐵龍Jumper。本質上是相同的。 這是一個很不錯的選擇,對我來說大小正好合適。我可以把它停在任何地方,它只比SUV稍微長一點。它的高度相當高,我可以輕鬆地站著。 說到設施,它有衛生間、瓦斯爐、自來水系統、排水箱。還有桌子、床、暖氣、充足的儲存空間。當然還有電力。 稍後我會詳細描述這些東西。 這輛車不是我自己建造的,是一家德國公司進行改裝的。7年前我以二手方式購買,當時它已經使用了4年。我認為這是一筆很好的交易,基本上是新車,只有3.2萬公里,但比新車便宜得多。這不是我第一輛「移動住宅」。 對於這個領域,我不是新手。在那之前,我有一輛基於1984年福特Transit的房車,這輛車非常棒且服務我30多年。當然,一開始我還沒開過它,因為那時我才4歲,但後來我開著它遊歷歐洲。 但是…回到車上吧。 自從我買了這輛車以來的7年間,我進行了很多長途旅行。春天、夏天、秋天和冬天。我(幾乎)從不以傳統的「全然忘記一切」意義上度假。在我心目中,工作是生活的一部分,生活和工作之間沒有分離。沒有工作/生活的平衡。只有在工作是主要活動的時候,和在工作不是主要活動的時候。我熱愛我的工作,我不夢想在海灘上度過3個星期,一天工作2小時,享受餘下的時間我更願意這樣做。 大部分是因為我不是一名雇員。我是一名獨立創作者,所以我總是帶著我的Mac在身邊,在車裡工作。 稍後我會告訴你如何做到這一點。這很重要,因為如果你打算旅行時不工作,那就是度假。度假意味著你需要在出發前「收拾好」你的工作。在度假期間,你會忘記很多事情,當你回來時可能需要一兩個星期才能恢復工作效率。 但是我是一位獨立的軟體開發者,現在也是全職的教育教師和「內容創作者」,也就是博主。 提示:即使你是作為雇員工作,你也可以做到這一點。重要的是你能夠達到預期的結果,並且你在工作時間上具有靈活性。一般來說,你需要和你的雇主協商這種靈活性。過去,我通過首先設定明確的界限來做到這一點,當我作為其他公司的承包商工作時,我總是擁有靈活的工作日和工作時間。最重要的是,我總是從事以項目為導向的工作,而不是「我每天工作8小時」。 我不想計劃何時進行這些車旅行。有些人提前數月預訂他們的假期。他們在一月份就預訂了八月份前往那個時髦地中海島嶼的渡輪。但他們和我不一樣。他們知道他們的假期從8月1日到8月31日(例如)。所以,他們必須提前計劃,因為在同一時期還有很多其他人度假,可能會沒有位置讓他們上船。 我討厭這種方式。對我來說,車居生活首先是自由。我只想自由漫遊,隨心決定出發,除了大致知道我想去哪裡外,不計劃任何事情。其餘的事情隨著旅行而來。 如果預報說北方會下10天的雨,我就把車頭朝南轉。如果我計劃去滑雪,但在我預計的地方下雪不夠,或者下了1米新雪,我無法從事我喜歡的運動,那麼我就會去其他地方。 也許你對一個地方抱有夢想,但當你到達那裡時,你卻討厭它。你總是可以去另一個地方。 在我們生活的時代,這也是最安全的旅行方式。只有你自己,你有自己的浴室,你自己煮食,你可以輕鬆地自我隔離,避免與其他人有密切接觸。 車居生活,或者更好地說是擁有一輛行車工具的生活,當然並不適合每個人。但如果這對你來說合適,或者你覺得這可能適合你,請繼續閱讀。 我還有其他關於這個主題的文章: 電力/能源 水 我要去哪裡? 行動中的互聯網 冬季怎麼辦? 太陽能面板升級

將簡單的網站遷移到 Astro

我有一個由 Hugo 提供動力的網站,但我想切換到一個更簡單的解決方案,這樣我在進行更改時就不必處理 Hugo 模板。 Astro 似乎是一個不錯的選擇。 我對 JSX 更加熟悉,如果將來需要,我還可以選擇使用像 Svelte 或 React 這樣的框架。 在本文中,我將向您展示如何進行切換。 我要談論的網站是 https://thejscourse.com,即 JavaScript 課程的網站。 它已經上線,使用純 HTML 和 CSS 構建,內嵌在頁面中。我只有一個 images/ 文件夾,以及一個 thanks/index.html 頁面,那是我在購買後感謝客戶的頁面。 以下是我的操作步驟。首先,我在 Git 倉庫中創建了一個新的分支,然後在其中初始化了 Astro,使用命令 npm init astro。 這要求我強制覆蓋現有文件: 然後,我選擇了 Minimal 模板並完成了安裝: 我將 images 文件夾移至 public 下,將 index.html 移至 src/pages/index.astro。 我運行了 npm install 和 npm run dev 以查看目前的工作狀況。 它運行正常! 然後,我將 thanks/index.html 頁面移至 src/pages/thanks.astro 檢查 URL,它也運行正常! 這是一次快速的過渡。轉換 HTML 不需要任何工作。 這與使用 JSX 時的預期不同。但正如您所知,Astro 的 JSX 有些獨特,讓我們的生活更輕鬆。不再需要使用骆驼命名法的屬性,也不再需要為所有 HTML class 使用 className=。...

專屬市場

確定你的專屬市場,你的部落。那些屬於這個部落的人將努力購買你的產品,或者至少會被強烈吸引,因為它是特別為他們而製作的。 你無法提供適合每個人的服務。開始時,其中一個主要問題是將太廣泛的人群視為潛在客戶。 這使得業務過於通用,這使得它太難脫穎而出。由於你必須迎合最普遍的需求,你的產品或服務必然會過於集中。 為一個特定的專屬市場創造完美的產品。根據維基百科的定義,專屬市場是“特定產品專注的市場子集”。 這可能看起來違反直覺,因為你希望更多的人購買你製作的產品。為什麼要專注在市場的一個子集上呢? 答案是你無法通過提供通用產品來吸引所有人的普遍觀眾。相反,專為那個群體中的一小部分人打造完美的產品,這樣他們將百分之百地滿意。 例如,這篇文章針對的是那些: 準備創業的人 想獨立創業的人 想要擁有線上業務的人 希望利用互聯網銷售產品的人 認為自由和靈活性比單純利潤更重要的人 這就排除了那些: 不想創業的人 想開展線下業務的人 想要一個或多個商業合作夥伴的人 已經開始過業務的人 想要以犧牲時間和健康為代價賺一大筆錢的人 沒有電腦的人 不喜歡在網上工作的人 在篩選出我的受眾之後,可以確定非常高百分比的人對此不感興趣。相反,我希望為您寫一篇完美的文章,因為您符合我的目標專屬市場的要求。 確定你的專屬市場,你的部落。那些屬於這個部落的人將努力建立購買你的產品的慾望,或者至少會被強烈吸引,因為它是特別為他們而製作的。首先定義你專屬市場的範圍,然後用人們想要的產品或服務來接觸符合這些要求的人。 以下是兩個例子: 如果你有興趣在亞馬遜上銷售,對你來說,一個談論經營企業的播客可能更有趣,還是每週採訪一個在亞馬遜上成功銷售的人的播客? 如果你正在尋找潛水衣,你會去賣“一點點一切”的運動用品店還是去水上運動用品店呢?也許前者需要開車更長的路程,但有個有經驗和熱情的店主,他比一般運動用品店的店員更能給你提供更好的建議,因為他從未踏足過水。也許在大型運動用品店你會找到更便宜的價格,但這是否是一次品質和持久性的購買? 這兩個例子足以確定一個概念:專注總是更好的。通過專業化自己,你對一小部分人來說是完美的,而對於一個更大的人群來說是平庸的。向這些人做營銷將更簡單,因為你可能會發現每個人都參與同一個Facebook或論壇群組,而競爭將非常少。 你可能會選擇一個太小的專屬市場,但犯過專業化太多方面的錯誤要比相反情況要好。 專屬市場的神奇之處在於專門化的專屬市場對於一個太大的競爭對手來說太小,他們將忽略你想要專注的市場片段。 你的獨特性就在這裡:你,僅僅是你,可以為那個市場帶來關鍵因素。