在 vue 項目中,團隊成員在模板中解析一個 json 字符串,而後這個字符串來自於後臺,因此是類型不安全,直接用 JSON.parse
就報錯了,這裏須要用 trycatch
下。html
實際是,由於這個解析 json 字符串的方法是純函數,且常常用在模板中,因此做爲 filter 合適,直接拷貝了其餘項目的這個方法過來做爲 fitlers 用,以下。vue
// omit other properties filters: { tryParseJsonString(jsonStr, defaultValue) { let ret = defaultValue; if (jsonStr) { try { ret = JSON.parse(jsonStr) || defaultValue; } catch (e) { console.warn('JSON格式不正確,解析失敗', e.message); } } return ret; } }, // ...
在模板中,能夠綁定到 v-bind,使用以下json
<template> <comp :images="li.value | tryParseJsonString([])" /> </template>
考慮到這個 filter 使用頻繁,因此能夠封裝進全局 mixin,避免頻繁的引用。安全