Webの表示速度を意識する1(idle速度の改善)
#今読んでいる本。
[Webフロントエンド ハイパフォーマンス チューニング](https://www.amazon.co.jp/dp/B0728K5JZV/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)
気になったところをまとめていきたいと思い書きます。その1。
ーーーーーーーーーーーーーーーーーーー
いくつかのポートフォリオサイトを検証ツールでみてみたところ、あるサイトだけ数値上「idle」のところが非常に時間がかかっておりました。
**idleとは**
*responseやanimation、Loadが終わった後に、ユーザーのアクションを待っている状態*
のことらしい。
では、「ユーザーのリアクションを待つ」状態がなぜ特定のサイトだけ長くなるのか?というと
>最近のブラウザのレンダリングエンジンは、jsの処理とユーザーからのアクションを同じメインスレッドで実行しているため、
webページが何も処理を行っていないように見えても、裏側でjsが実行されているとユーザーからの入力が遅延される。。。
とのこと。(前述の本より)
かなり驚いたので初めて記事を書きます。
# だめな例
“aaa”と入力されたinput要素のvalue属性を表示するプログラムのつもり。(つまり”aaa”が返ってくるはず)
“`html:HTML
“`
“`javascript:JavaScript
const check = () =>{
const target = $(‘input[value=”aaa”]’);
console.log(target.val());
}
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601799/96cf80f3-f823-91cf-dae0-31e3c40ec411.png)
“aaa”と入力して、consoleで`check();`を呼び出すと当然”aaa”…ではなく`undefined`
# 原因
どうやら[こちら](https://stackoverflow.com/questions
#Vue.jsについて学習中メモ(*適宜更新)
#1.template
###(1)v-text
文字列をテンプレートに埋め込む
“`.html:test.thml
““
“`.js:test.js
let app = new Vue({
el:”app”,
data:{
message=”おはよう!”
}
})
“`
上記は以下でも同様
“`.html:test.thml
““
###(2)v-bind
属性値を埋め込む
“`.html:test.thml
# ストップウォッチ作ってみた
HTML,CSS(SCSS),JavaScript(not jQuery)でストップウォッチ作ってみました。ストップウォッチ作成は初心者が通り道らしいので私も通ってみました。どこか変なところやアドバイスがあればコメントお願いしますー!
ちなみにSCSSは特に解説してません。
## 完成形
こんな感じのができました。0.5 倍で見ると見やすいです。CodePen の埋め込み機能を使ってみましたがデフォルトで 0.5 倍にできたらいいんですけどやり方わかりませんでした(笑)
ReduxとReduxToolkitを使用してReact内でデータを管理する
# はじめに
[前回のReactを使用してWeb画面を作成する](https://qiita.com/mink0212/items/a53b285dd26f57b835b3)では、Reactの簡単なサンプルと共に説明をまとめました。次はデータを持ちまわすためにReduxとReduxToolkitの簡単なサンプルと説明をまとめようと思います。
最低限の簡単なサンプルなのでアクションは別ファイルにするべきであったり、といったベストプラクティス的なものは他のサイトで調べてください。
# 環境
- node.js: v12.18.2
- webpack: 4.44.1
- React: 16.13.1
- Redux: 7.2.1
# 環境作成
[前回のReactを使用してWeb画面を作成する](https://qiita.com/mink0212/items/a53b285dd26f57b835b3)の続きとなります。
環境構築などはそちらを見てください。
## Redux
Reactのコンポーネント間でデータを共有するためにReduxというライブラリを使用します。
###
JavaScript
React
redux
react-redux
react-hooks
# まえがき
以下の解説はいたしません。
- RGB
- ビットマップフォーマットのヘッダーレイアウト
- ビットマップフォーマットの画像データレイアウト
- リトルエンディアンとビッグエンディアン
# 背景
[node-canvasをつかってSVGファイルをビットマップファイルに変換する - Qiita](https://qiita.com/ledsun/items/79c0f36dca1cc18bf230)でCanvasの[ImageData](ImageData - Web APIs | MDN)から、32ビット ビットマップフォーマットのエンコードへの変換を実装しました。
## 32ビット ビットマップの問題
32ビット ビットマップフォーマット では、1つの画素につき4バイト、32ビット幅の領域で色情報を表現します。4バイトの内訳は、「RGBAの4つの情報にそれぞれ1バイトずつ」と思いきや、4番目はAlphaではなく、Reserved領域です。予約されていますが、画像の情報として、つかわれていません。予約した当初は、Alphaにつかう予定があったかもしれません。現在
JavaScript
Binary
bitmap
DataView
#はじめに
javascriptの基礎が定着するようにここでアウトプットしておきます。
至らない点などあればアドバイスいていただけると幸いです!!
じゅぶん自身最近初めてばかりなのでES6のありがたみなどは全く理解していないのでそのためにもまず基礎の基礎をここで書いておこうかなと思います!!
#目次
1.変数と定数宣言
・var
・let
・const
2.関数宣言
・function宣言
・関数式
・アロー関数
3.終わりに
#変数と定数宣言
ES6以前では変数の宣言でvarしか使えなかった!!
###var
>var 変数名 = '初期値';
変数名 = '再代入';
var 変数名 = '再宣言';
これら全てがvarでは可能
**また関数内のどこからでも参照可能!!**
そのためvarだとブロックスコープの変数が使えなかった!!ブロック{}外からも参照できてしまうため!!
###let
>let 変数名 = '初期値';
変数名 = '再代入';
let 変数名 = '再宣言できない';
再代入はできるが再宣言はできない
**ブロック内{}でしか呼
タイトル通りJSのイベントが起きるためにリロードが必要な状況を改善したい。
検索すると以下の参考記事があったので、素直にgemfileとapprication.jsを変更し対応しようとしたがうまくいかない。
https://qiita.com/Terunaga/items/19d4f49f3abd3316f098
別の記事で以下のようにjsのリロードが必要なページに追記することで解決できた。
```
```
# はじめに
テストを書くのは好きですか?
アプリケーションを作成するうえで、テストは必ず書かなきゃいけないものですが、テストの書き方まで丁寧に記載されている書籍やサイトって少ないように感じます。
今回はExpress + MongoDBで作成したAPIサーバーをJestでテストします。
まずはモジュールごとに依存関係を切り離した単体テストを作成します。
Jestの強力なモック機能を活用することができます。
その後[supertest](https://github.com/visionmedia/supertest)を用いた結合テストまで作成します。
supertestは擬似的なHTTPリクエストを送ることができます。
# テスト対象のアプリケーション
予め作成しておいた以下のコードをテストします。
機能としては簡単に、`/api/users/:username`を`GET`で叩くと指定したユーザーネームのユーザーを取得でき、`/api/users`を`POST`で叩くと、ユーザーを作成できるという最小限のものです。
すべてのコードはここから確認することができます。
JavaScript
MongoDB
Express
TypeScript
Jest
#title
例)
``functionOrKey="sort"``
``value[functionOrKey]()``
きょうび、自鯖に掲示板を用意したいと思っても、CGI や PHP のプログラムを配布しているサイトは軒並み停止していて、スマホ対応なんて望むべくもなく、もはや自作するしかない……ということで、なぜか Gogle Apps Script でスレッド式掲示板を作ってみました。
そんで、出来上がったものが[こちら](https://script.google.com/macros/s/AKfycbwNXn4xKQR2irDAxnf5aCgUGSHAi7Z-yNIxI6eWJz5nxoi5fmT1/exec)
ソースコードは GitHub に上げました。
[GAS-BBS](https://github.com/PANDAKO-GitHub/GAS-BBS)
GitHub 使うの初めてなので、全ファイルサイト上でコピペしてリポジトリ作りました?
かなり簡素な作りですので、利用したいという奇特な方は、いい感じに改造してからご利用ください。
## 苦労した点
ぶっちゃけあんまないけど、HTML テンプレート経由だと勝手にエスケープしちゃって br 要素を出力することもできないので、仕方なく
JavaScript
GoogleAppsScript
gas
# ランダムな整数が欲しい!
そんなときはこの処理を使おう!
自分がよく使っている関数です。
```js
const rand = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
```
なんのこっちゃない処理ですが
ブラウザゲーム作成時によく使います。
```js
rand(1, 10) //1〜10までのランダムな整数を返してくれます
```
いろいろと応用が効くので使いやすい。
DOM操作時でも、例えばランダムに画面外からやってくる感じを演出するときにも使えます。
```js
element.style.transform = `translate(${rand(-100, 100)}%, ${rand(-100, 100)}%)`
```
とかってしてやると
縦軸、横軸ランダムな位置に配置することができるので、
css animationと組み合わせてやると
ランダムな位置に発生して所定の位置へ移動してくる動きを要素に与えることができます。
```js
const els = d
# 何に関する記事か?
:white_check_mark: **[vxe-table](https://github.com/x-extends/vxe-table/blob/HEAD/README.en.md) というVue.js向けのテーブルUIコンポーネントを紹介**する記事です。
かなり高機能・高性能なライブラリなのですが、中国発ということもあり日本語の情報が見当たらなかったので記事にしてみました。
:warning: この記事ではコンポーネントの提供する機能のほんの一部しか紹介していません。より詳細な情報は以下のリンクから参照してください。
## :link: Link
* [GitHub - vxe-table](https://github.com/x-extends/vxe-table/blob/HEAD/README.en.md)
* コンポーネントの概要やインストール手順、サンプルコードなど
* [vxe-table 公式ガイド(英語・中国語)](https://x-extends.github.io/vxe-table/#/table/base/ba
# メルマガ業務駆逐ツールを制作中です
JavaScript
個人開発
独学
駆け出しエンジニア
JavaScript言語は、JavaおよびC言語に基づいた構成を持っている、強力なクライアント側のマルチパラダイムの動的言語です。それに多数のタイプとオペレーター、組み込みオブジェクトやメソッドが含まれています。JavaScriptはオブジェクト指向プログラミングと関数型プログラミングの両方をサポートしていますので、1つの言語内でほぼどんなオブジェクトまたは機能でも作成できます。
##JavaScriptの起源と最新のトレンドに詳しいJavaScript プログラマーを採用する方法
JavaScriptは単独で実行不可能であり、JavaScriptコードを実行するブラウザーが存在します。 ユーザーがJavaScriptの有効なHTMLページを開こうとすると、スクリプトがブラウザーに送信され、ブラウザーはスクリプトの下で動作します。ブラウザー以外に、JavaScriptはAdobeサービス、サーバーサイド環境、データベース、SVG画像などで表示することもできます。JavaScript言語は幅広いタイプのアプリケーションに使用できます。
![javascript-kaihatsusha-
Vue.js書いていてコミットしようとしたら、 `vue-cli-service lint` で怒られた。
```
✖ vue-cli-service lint found some errors. Please fix them and try committing again.
Error resolving webpackConfig Error: No valid exports main found for '/path/to/project/node_modules/colorette'
```
なんのこっちゃ・・・と思って調べたら、Node.jsのバージョンが古いのが問題らしい。
`v13.5.0` でした。
別PCで作ったプロジェクトをクローンしたときに、差異が発生したのだろうか。
nvmが入っていたので、[この記事](https://phoenixnap.com/kb/update-node-js-version)を参考にバージョン上げ。
```
nvm ls-remote
```
で最新バージョンを確認。
```
nvm install v14.7.0