แก้ปัญหากด F5 แล้วข้อมูลหายด้วย NGXS

Sommai Krangpanich
pnpsolution
Published in
1 min readSep 16, 2020
แก้ปัญหากด F5 แล้วข้อมูลหายด้วย NGXS

บทความนี้เป็นบทความต่อเนื่องจาก บทความที่แล้วนะครับ อ่านบทความที่แล้วได้ที่ นี่นะครับ

เนื่องจากมี req จากผู้ใช้งานว่าอยากให้เมื่อกด F5 แล้วข้อมูลยังคงอยู่ไม่หายไป ไม่อยากเริ่ม key ใหม่ตั้งแต่แรก ก็เชื่อว่าเป็นโจทย์ที่เพื่อนๆ นักพัฒนา Software เจอกันอยู่บ่อย ๆ ซึ่งก็มีวิธีการแก้ปัญหาหลายอย่าง

ซึ่งในบทความนี้เราจะมาแนะนำเทคนิคง่าย ๆ เพื่อจะช่วยให้แก้ปัญหาเรื่องที่ผู้ใช้งานกด F5 แล้วข้อมูลยังคงอยู่โดยที่เราแทบไม่ต้องแก้ code เราเลยหากเราใช้ NGXS อยู่แล้วเราแค่ติดตั้ง plugins เพิ่มเข้าไป 1 ตัวเท่านั้นเองครับ

เริ่มต้นติดตั้ง plugins ที่ชื่อ Storage เข้าไปด้วยคำสั่งดังนี้นะครับ

npm install @ngxs/storage-plugin --save

หลังจากติดตั้ง plugins เสร็จแล้วก็ไปเรียกใช้ที่ app.module.ts ดังนี้นะครับ

import { NgxsModule } from '@ngxs/store';
import { NgxsStoragePluginModule } from '@ngxs/storage-plugin';
@NgModule({
imports: [
NgxsModule.forRoot([CounterState]),
NgxsStoragePluginModule.forRoot({
key: [CounterState]
})]
})
export class AppModule {}

ตัว storage นั้น default จะเก็บใน localStroage แต่ถ้าเพื่อน ๆ ท่านใดอยากเก็บแบบ sessionStorage ก็สามารถตั้งค่าได้ดังนี้ครับ

import { NgxsModule } from '@ngxs/store';
import { NgxsStoragePluginModule, StorageOption }
from '@ngxs/storage-plugin';
@NgModule({
imports: [
NgxsModule.forRoot([CounterState]),
NgxsStoragePluginModule.forRoot({
key: [CounterState],
storage: StorageOption.SessionStorage
})
})
export class AppModule {}

ซึ่งหลังจากที่ได้ใช้มาในหลาย ๆ โปรเจ็คก็พบว่าตัว NGXS ตอบโจทย์ในหลาย ๆ ด้านโดยเฉพาะเรื่องของ plugins นั้นมีเตรียมไว้ให้ค่อนข้างครบถ้วน สำหรับท่านใดที่ลองทำตามแล้วไม่ได้ หรือว่าติดขัดอย่างไรสามารถเข้ามาพูดคุยแลกเปลี่ยนกันได้ที่ facebook : pnpsolutionหรือ web site : www.pnpsw.comได้ครับ

--

--