1-9
Vue-Chart.js
- 因 vue-chart 套件會渲染出 html template,所以寫 vue 檔時不用寫 template
- 若直接引入此 vue 檔,無法渲染出來,需註冊成全域組件
LocalStorage
localStorage.setItem('key', 'value')
localStorage.getItem('key')
- 全域物件,可直接使用
- value 只能是字串,故需存成 Json 格式字串,撈出來再 parse
SessionStorage 相關知識點
- https://blog.huli.tw/2020/09/05/session-storage-and-html-spec-and-noopener/#more
- 各家瀏覽器實作不一樣,跟 spec 寫的可能會有出入
- noopen norefer
- 開新分頁與 Session 關係
Shell Script 執行權限
若 .sh 檔沒有 executable flag,則無法執行檔內指令
ls -l
可看檔案相關讀寫權限
$ ls -l
total 16
-rw-r--r-- 1 zhuangbocheng staff 806 9 7 12:21 deploy.sh
drwxr-xr-x 7 zhuangbocheng staff 224 8 16 2019 dist
-rw-r--r-- 1 zhuangbocheng staff 1632 9 7 12:04 template.yaml
- 執行
chmod +x deploy.sh
,可增加執行權限
-rwxr-xr-x 1 zhuangbocheng staff 806 9 7 12:21 deploy.sh
Shell Script 參數
projectName=test ./deploy.sh
參數可帶在最前面,使用:echo ${projectName}
- 參數可帶後面,但要用$照順序取得:
./shell_test.sh var1 var2 var3
## ./shell_test
echo "Total argument: $#"
echo "Script name: $0"
echo "Argument 1: $1"
echo "Argument 3: $3"
- 結果
Total argument: 3
Script name: ./shell_test.sh
Argument 1: var1
Argument 2: var2
Argument 3: var3
AWS CloudFront
- 新建 CloudFront 與 S3 關聯需要等一小時左右才能用 CDN 網址 access 到檔案
- error response 會被 cache 住,預設5分鐘
- cache 住時就算有解掉問題,也還是會回一樣的錯誤
- 故用 CloudFront access S3 時,error response cache 可以設最少的 5秒鐘
- 一般來說是不建議設 cache 時限這麼短,因為會容易被攻擊,但因為我們是用 S3 不是用自架伺服器,所以沒關係
- https://www.youtube.com/watch?v=GsP0xDmnzi0
高流量 scale-out 與 Panel 切割
網頁實時更新方法
Shell Script 判斷程式成功失敗執行下一步
- https://www.brilliantcode.net/2166/shell-script-how-to-do-things-after-command-finished/?cli_action=1599641855.862
command && echo "OK" || echo "NOT OK"
- https://unix.stackexchange.com/questions/22726/how-to-conditionally-do-something-if-a-command-succeeded-or-failed
if command ; then
echo "Command succeeded"
else
echo "Command failed"
fi
sam cli
- sam package 上傳至 bucket 可帶前綴參數指定資料夾路徑
--s3-prefix packaged
,不用/
開頭
AWS cli
- head-bucket 指令可查詢 bucket 是否存在與是否有操作權
aws s3api head-bucket --bucket bucketName --profile profile
- create-bucket 時,region 在兩個地方都要設置
aws s3api create-bucket --bucket bucketName **--region region** **--create-bucket-configuration LocationConstraint=region** --profile profile
Node.JS fs.readFile和fs.readFileSync
- 前者方法為異步讀取檔案,有 callback 函式含 err 與 data 兩個參數可用;後者為同步,執行到這段時需停下等完成並回傳結果(類似 await),有錯誤需用 try catch 處理
- 讀取檔案若為二進制,沒帶編碼參數的話得到的會是 buffer
ES6 class 語法糖 & Prototype 差別
Vue i18n 格式化
- i18n 字串內能用 {0} {1} {2} 或 {msg} {name} 語法來做動態資料
<p>{{ $t('text', {'0': 'hello'}) }}</p>
或<p>{{ $t('text', { msg: 'hello' }) }}</p>
Vue i18n 插值
- 在需要文字句內夾
<a>
標籤或其他 html tag 內也需要 i18n 時,除了拆分不然就是用 v-html 在 i18n 字串內夾雜 html 語法,這樣也許會有 xss 風險,故提供了组件插值方法 - 提供 place 屬性命名插入的值,若沒設就是照順序 0、1、 2 插入
- 官方文檔:https://kazupon.github.io/vue-i18n/zh/guide/interpolation.html#%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95
其他
- 也是很實用的複數功能:https://kazupon.github.io/vue-i18n/zh/guide/pluralization.html#%E5%A4%8D%E6%95%B0
- 還有其他頗實用的功能:日期顯示、錢符數字等等
CSS & 預處理器 calc
- CSS3 的 calc 為執行階段處理,所以能在算式內使用多種單位,但預處理器為預編譯,所以只能用一種單位做計算