Learning: In a vanilla JS environment without memoization or virtual DOM diffing, recalculating derived string and date properties (like .toLowerCase() combinations or new Date()) inside high-frequency render or filter loops causes severe CPU overhead. A simple Node.js benchmark showed a 128x speedup when these properties were pre-calculated.
Action: When working with list data in vanilla JS, use a dedicated prepareSearchIndex or similar pre-processing step immediately after data fetch. Calculate search strings (_searchStr), formatted dates (_formattedDate), and other derived states once, and store them as runtime properties on the objects. Ensure these derived properties are calculated after data is cached to localStorage to avoid cache bloat.