- 1. requestAnimationFrameで端末負荷を測定する
- 2. kintone 関連レコード詳細画面で遅延表示の動作検証
- 3. 3kbのHTML to Reactパーサ「DOMParserReact」で、aタグをNext.jsのLinkコンポーネントで表示する
- 4. JavaScriptのコンテキスト
- 5. 【JavaScript】変数と参照の振り返り④ AND条件とOR条件
- 6. バイバイ、サーバーサイドレンダリング。Prerender.ioーSEOを考慮したSPA
- 7. VSCodeでJestを活用するための便利な拡張機能
- 8. npm install / yarn add したら tsc が通らなくなった話
- 9. 【覚書】JSDoc + ts-check で as any as を実現する
- 10. 【Javascript】画像URLを入力した瞬間に画像プレビューできるテキストエリアを作ってみた
- 11. 早期リターン(ガード節)の書き方メモ
- 12. Webブラウザ・JavaScriptエンジン・ECMAScript
- 13. VSCode で javascript/typescript の定義ジャンプ等の機能が効かないときの対処法
- 14. 【初学者向け】JavaScriptのjoinについて
- 15. 【Vue.js】 v-bindについて
- 16. JavaScript ECMA ES6 などの言葉を整理する
- 17. 【JS】2つの配列それぞれの値どうしをindexOfで検索したいけど方法がわからない【作業ログ】
- 18. 【公式ドキュメント和訳】TypeORM Migration
- 19. これからReact始めたい人のための今日だけでできるTODO#20 useRefとuseState
- 20. 【JavaScript】変数と参照の振り返り③ 等価性とtrue or falseについて
requestAnimationFrameで端末負荷を測定する
## 背景
最近ブラウザから端末負荷を測定したい場面に出くわしました。
弊社ではwebrtcを扱っていて、ライブ中の端末負荷の変化を測定したかったのですが、残念ながらブラウザAPIは用意されていません。そこで`requestAnimationFrame`apiを使用して画面の描画回数を測定することで、間接的に端末負荷の指標とすることにしました。
## Window.requestAnimationFrame()
requestAnimationFrameは本来はアニメーションを実装するために使用するAPIです。https://developer.mozilla.org/ja/docs/Web/API/Window/requestAnimationFrame
> ブラウザにアニメーションを行いたいことを知らせ、指定した関数を呼び出して次の再描画の前にアニメーションを更新することを要求します。ブラウザが画面を描画するたびにコールされ、そのタイミングで任意の関数を実行したい場合に使用するのが一般的かと思います。
今回は、ブラウザが画面を描画するたびにコールされることを利用
kintone 関連レコード詳細画面で遅延表示の動作検証
kintone のアップデートで、関連レコードの詳細画面で遅延表示となったので、kintone イベント処理時の動作検証をしてみました。
試しに関連レコードの文字列項目を赤表示してみます。# 関連レコードの詳細画面で遅延表示の概要
関連レコードを遅延表示することで、「詳細画面で表示が開始されるまでの待ち時間が短縮」されるようです。
[kintone 2021年10月版 主なアップデート](https://kintone.cybozu.co.jp/update/main/2021-10.html#point2)
>関連レコード一覧フィールドが配置されているアプリのフォーム表示開始までにかかる時間を短縮
アプリのレコード詳細・編集画面にて、読み込みに時間のかかる関連レコード一覧が配置されているとき、フォームの表示が開始されるまでの待ち時間が短縮されました。
・レコード詳細画面の読み込み(9月版まで):
レコードの内容が何も表示されない待ち時間が長く、その間、何もすることができませんでした。
・レコード詳細画面の読み込み(10月版より):
関連レコード一覧以外のフィールドが素早く表示
3kbのHTML to Reactパーサ「DOMParserReact」で、aタグをNext.jsのLinkコンポーネントで表示する
作ったライブラリの宣伝記事です。
https://www.npmjs.com/package/dom-parser-react
## DOMParserReactとは
DOMParserReactは軽量なHTML to Reactパーサーです。HTMLテキストをReactのコンポーネントに変換して表示します。また、表示の際にHTMLのタグを任意のコンポーネントに置き換えることができます。
主な使用想定は、個人ブログなどのコンテンツ部分です。コンテンツ部分は、MarkdownのファイルやヘッドレスCMSのリッチテキストで管理し、それをHTMLにしたものを表示していると思います。このライブラリを使用すれば、そのHTMLを表示する際、CSS in JS等のReactの技術を使って装飾したり、タイトルのようにaタグをSPA用の `Link` コンポーネントに置き換えたりすることができるようになります。
そして、このライブラリの一番の特徴は、その軽さです。minifyで3kb(v0.2.0時点)しかありません。類似ライブラリと比べて非常に軽量なのは、独自のパーサーを使わず、ブラウザJ
JavaScriptのコンテキスト
# はじめに
コンテキストについて学習したので備忘録を残します。
初学者です。
間違っている箇所がありましたら申請お待ちしております。# コンテキストってなに?
JavaScriptでの意味
実行コンテキスト(コードを実行する際の文脈・状況)# コンテキストには3種類ある
*覚えるべきは2つ*
**グローバルコンテキスト**
**関数コンテキスト**
~~evalコンテキストは不要~~ 関数eval自体が非推奨のため**グローバルコンテキスト**
*使用可能な値*– 実行中のコンテキスト内の変数・関数
– グローバルオブジェクト
– this**関数コンテキスト**
*使用可能な値*– 実行中のコンテキスト内の変数・関数
– arguments
– super(特殊な環境でのみ使用可能)
– this
– 外部変数# 実際のコードで確認しよう
コメントアウトをみてね“`javascript
// グローバルコンテキスト JavaScriptファイル内直下の実行環境(変数や関数)
let a = 0;
function b() {
console
【JavaScript】変数と参照の振り返り④ AND条件とOR条件
#はじめに
Udemyの[【JS】ガチで学びたい人のためのJavaScriptメカニズム](https://www.udemy.com/course/javascript-essence/)の講座の振り返りです。
前回の記事
https://qiita.com/nao0725/items/263dc7a74981fc33a27c
#目的
* 変数についての理解を深める
#本題
###1.AND条件とOR条件####ANDの条件と仕組み
““javascript
// AND条件 かつ a && b
// aとbがtureでないといけないconst a = 1;
const b = 1;
// 出力結果で1が返ってくる = ture
console.log(a && b)
“““““javascript
const a = 0;
const b = 1;
// まずaがturethyなのかどうか確認する
// aがtureの場合 => bの値を返す
// aがfalseの場合 => aの値を返す
// ここではaは0なのでaの値を返す
c
バイバイ、サーバーサイドレンダリング。Prerender.ioーSEOを考慮したSPA
本記事は、掲載元で2日で23K「いいね」を獲得した[Sviat Kuzhelev](https://sviat-kuzhelev.medium.com/)氏による「[Say goodby to Server Side Rendering. Prerender.io — SPAs with SEO in mind.](https://sviat-kuzhelev.medium.com/say-goodby-to-server-side-rendering-prerender-io-spas-with-seo-in-mind-62e6f68eb323)」(2021年9月21日公開)の和訳を、著者の許可を得て掲載しているものです。
#バイバイ、サーバーサイドレンダリング。Prerender.ioーSEOを考慮したSPA
![](https://miro.medium.com/max/1260/1*zrQL7U7oxMAjVoHzR_VdtQ.png)
image is taken from [this resource](https://miro.medium.com/)##はじ
VSCodeでJestを活用するための便利な拡張機能
Jestを少しでも簡単・便利に書くために便利な拡張機能です。
## Jestとは
JavaScript用のテストフレームワークです。“`sample.js
const sample = (param) => {
return param + 1;
};
export default sample;
“`“`sample.test.js
import sample from “./sample”;test(“sample”, () => {
expect(sample(1)).toBe(2);
});
“`## 拡張機能
### 1. [Jest](https://marketplace.visualstudio.com/items?itemName=Orta.vscode-jest)
ファイルを変更したタイミングで、自動でJestが実行される。
コード記入→`yarn test`とか叩く必要がなくなるので、テストコードの記入やリファクタリングの高速化が図れる。![image.png](https://qiita-image-store.s3
npm install / yarn add したら tsc が通らなくなった話
React のカスタムフックをテストするために [`@testing-library/react-hooks`](https://github.com/testing-library/react-hooks-testing-library) をインストールしました。
そして `tsc` を実行すると types 周りがコケる現象が発生しました。“`bash
$ tsc –noEmit
node_modules/@testing-library/react-hooks/node_modules/@types/react/index.d.ts(3092,14): error TS2300: Duplicate identifier ‘LibraryManagedAttributes’.
node_modules/@testing-library/react-hooks/node_modules/@types/react/index.d.ts(3103,13): error TS2717: Subsequent property declarations must have the
【覚書】JSDoc + ts-check で as any as を実現する
`//@ts-check` で JS を書いていて、
`as any as` とか `as unknown as` とか
`(T as any).hoge` とかみたいな書き方がしたくなったので調べた。# ふつうはこうなる
“`js
//@ts-checkdocument.createElement(“div”).innerText = 12345;
// -> Type ‘number’ is not assignable to type ‘string’. ts(2322)
“`# TypeScript ならこれでゴリ押せる
“`ts
document.createElement(“div”).innerText = 12345 as any as string;
document.createElement(“div”).innerText = 12345 as unknown as string;
“`でも JSDoc では当然このような書き方はできない・・・
# `ts-expect-error` は代案にならない
TypeScript では
【Javascript】画像URLを入力した瞬間に画像プレビューできるテキストエリアを作ってみた
#### はじめに
最近業務でjavascriptでUI実装をする機会が増え、その最中今後も使いそうな機能については備忘録をのこしておこうと思っての投稿です!
「ネット検索した画像URLをそのまま画像出力をする機能が必要だったためその機能実装メモです!
### こんなかんじ?![プレビュー.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549258/da30a6dd-c841-d5dc-75ab-887bceae3cfc.gif)
#### 完成コード
“`php:hoge.blade.phpTSVバナー画像のベースURL関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた