- 1. なんとなく、簡単に入門できそうなReact
- 2. addEventListenerにアロー関数で値を渡すとremoveEventのとき困る
- 3. JavaScriptで連想配列から特定のキーだけ抽出
- 4. 普通じゃ満足できない脱 webpack マニアのあなたに贈る Snowpack
- 5. JavascriptのDate型の注意
- 6. JavaScript 基礎文法入門
- 7. Reactでマークダウンエディタ作成とマークダウンからHTMLに変換(ハイライト付き)
- 8. [payjp]tokenは発行できているのに呼び出せるはずのデータがテーブルに入らないエラーの解決方法
- 9. JavaScriptでタイムゾーン付きの文字列(ISO8601)をJSTの”yyyy/mm/dd HH24:mi:ss”で表示する
- 10. Node.jsのworker_threadsに何を渡すべきか
- 11. Trelloの完了したタスクをGASで自動アーカイブする
- 12. Fullcalendarでイベント作成するも、なぜか月表示した時に、9時以降にならないとその日に表示されない問題
- 13. ES2015以降をお勉強するのに、Svelte REPLが楽しかったので紹介しておく
- 14. iCheckを使用したチェックボックスでチェックの数を制限する方法
- 15. エンジニア向けオープンプロジェクトトレース
- 16. Chrome Ver.80系でJavaScriptを無効化する方法
- 17. JavascriptのPromiseを解説します
- 18. HTMLのリアルタイムプレビュー環境を雑に整える
- 19. 【Nuxt.js】Vue Router基礎編:params, queryを使おう
- 20. GoogleDriveにアップロードした画像から、外部参照可能なURLを生成しimgタグ化するコードを書いてみた
なんとなく、簡単に入門できそうなReact
タイトルが強弁すぎますね、ごめんなさい?
[すすさんの記事](https://qiita.com/susu_susu__/items/da94e751d2db784ad0ee)のリリースツイートを見て「おっこれはワイもReact記事書くムーブかな???」となったので書いてみます。
# 本項のゴール
+ Reactのコンポーネントの作り方を理解する
+ propsを渡して動的にUIを作ってみる(Stateは気力があれば別記事で書こうと思います)# 諸注意
間違ってる箇所とかバッドプラクティスがあるかもしれません
コメントで指摘していただければと思います。# そもそもReactってなに?
フロントのUIライブラリの話になるとVueと比較される事が多いので高機能なのを想像しがちですが
React自体、及びReact-DOMは **HTMLのレンダリングをするだけのライブラリです。**そもそもReact自体はHTML周りの機能すら持ってません。その辺りは色々あってReact-DOMに分割されました。
この話についてはGoogleで検索するといくらでも出てくるので本稿では省略し
addEventListenerにアロー関数で値を渡すとremoveEventのとき困る
mountedでイベントリスナーを動かし、destroyedで削除するパターンでうまくイベント削除が行えなかったのでメモ。
下記はVueを使っていますが、別にVueに限らず問題起こるみたい。
“`js
mounted () {
window.addEventListener(‘mousedown’, (e) => {
this.hoge(e)
})
},
destroyed () {
window.removeEventListener(‘mousedown’,this.hoge)
},
methods: {
hoge (e) {
console.log(e.clientX)
}
}
“`下記のように書き換えました。
“`js
mounted () {
window.addEventListener(‘mousedown’, this.hoge)
},
destroyed () {
window.removeEventListener(‘mousedown’,this.hoge)
JavaScriptで連想配列から特定のキーだけ抽出
PHPの`array_column($array, ‘column’)`みたいなことをJavaScriptでやりたいなぁと思ったときのやつ
“`javascript
const fruits = [
{
id: 1,
name: “Apple”,
},
{
id: 2,
name: “Banana”,
},
{
id: 3,
name: “Grape”,
},
]fruits.map(item => item[“name”]) // [“Apple”, “Banana”, “Grape”]
“`
普通じゃ満足できない脱 webpack マニアのあなたに贈る Snowpack
[Snowpack](https://www.snowpack.dev) を使い React + TypeScript な環境構築をする具体的な設定を紹介します。
# Snowpack is 何
npm パッケージを、ブラウザーから読み込めるよう ES modules 形式[^esmodules]に変換してくれるバンドラーです。
[^esmodules]: [Webpack を使わずに import 文を使う – Qiita](https://qiita.com/kazuma1989/items/1b1a4443925005034f7e)
次のように使います:
1. `npm install` 後に `snowpack` コマンドを実行し、node_modules 内のパッケージをブラウザーから読み込めるようバンドルする。たとえば `node_modules/react` を `web_modules/react.js` のようなファイルにまとめる。
2. アプリケーションコードは ES modules の作法に則って記述し、必要であれば `web_modules/rea
JavascriptのDate型の注意
月計算で何度も出くわしたので、注意書きとしてメモしておく。
## 月取得
getMonthで月を取得できるが返り値は0からはじまっている。
つまり、1月の場合は0、10月の場合は9が出力される。“`javascript:月の取得
> var today = new Date();
// Tue Mar 17 2020 14:00:11 GMT+0900 (日本標準時)
> var month = today.getMonth() + 1; // 現在の月を表すために +1 する
// 3
“`ちなみにgetDateの返り値は1から始まる。
“`javascript:日の取得
> var tosay = new Date();
// Tue Mar 17 2020 14:00:11 GMT+0900 (日本標準時)
> var date = today.getDate();
// 17
“`## おまけ
実際に試してみると違いを体感できます。
“`javascript
> var testDate1 = new Date(“202
JavaScript 基礎文法入門
## JavaScript基礎文法入門
JavaScriptの基礎文法を学びます。
参考資料
– [詳解JavaScript 基礎文法編 (全26回) – プログラミングならドットインストール](https://dotinstall.com/lessons/basic_javascript_grammer_v2)
– [JavaScript Primer #jsprimer](https://jsprimer.net/)### はじめてのJavaScript
console.logでデバッグメッセージが出力される
“`js
console.log(‘Hello World’);
“``HTML`内で呼び出す場合は`
`タグの閉じカッコの直前で宣言する。“`js
*
*
“`
別ファイルから呼び出す場合は以下のように宣言する
“`js
Reactでマークダウンエディタ作成とマークダウンからHTMLに変換(ハイライト付き)
Reactでマークダウンエディタの作成と、マークダウン表記をHTMLに変換(ハイライト付き)してみました。
ライブラリを組み合わせることで、楽に実装することができます。## 環境
– OS : macOS Catalina 10.15.3
– node.js : 12.13.1
– React : 16.12.0Reactのライブラリは以下を使用します。
– react-simplemde-editor(EasyMDE) : 4.1.0
– marked : 0.8.0
– highitjs : 9.16.2参考までに、紹介するコードはGitHubにあります。
[https://github.com/txkxyx/react-mde](https://github.com/txkxyx/react-mde)
## マークダウンエディタを作成する
Webの画面にマークダウンエディタを埋め込む場合、元々`SimpleMDE`というライブラリが使用されていましたが、今は`EasyMDE`という`SimpleMDE`をフォークして作られたライブラリが使用されています。
[payjp]tokenは発行できているのに呼び出せるはずのデータがテーブルに入らないエラーの解決方法
#1.どのような状態だったか
javascriptで`payjp-token`取得はコンソールで確認すると全て成功しており、ページ遷移の部分でもエラーは出ず、validationに関するエラーも出ないのに、コントローラーで`payjp-token`の値が取り出せないという状態でした。(エラー文が出ず、正常にnewアクションに戻るという症状でした。)
下記の二つの記事を参考にpay.jp機能を実装をしていました。(大元が上の方で、それの詳細まで記述されていたのが下記の方でした。)
https://qiita.com/takachan_coding/items/f7e70794b9ca03b559dd
https://qiita.com/emincoring/items/ce29dbbd182aa3c49c6bなのでとりあえず動作を見るべく細部まで記述のあった下記のブログを参考に下記のようにviewを作成しました
※今回はviewの記述によるエラーだったので、その部分についてのみ記述します
“`haml:app/view/cards/new.html.haml
.cont
JavaScriptでタイムゾーン付きの文字列(ISO8601)をJSTの”yyyy/mm/dd HH24:mi:ss”で表示する
## 概要
タイムゾーン付きの文字列(ISO8601)をJSTで表示する。
## 実装
“`javascript
a = new Date(‘2020-03-09T19:21:13+09:00’)
// Mon Mar 09 2020 19:21:13 GMT+0900 (日本標準時)
a.toLocaleDateString(“ja-JP”, {timeZone: “Asia/Tokyo”})
// “2020/3/9”
a.toLocaleString(“ja-JP”, {timeZone: “Asia/Tokyo”})
// “2020/3/9 19:21:13”
a.toLocaleString(“ja-JP”, {timeZone: “America/New_York”})
// “2020/3/9 6:21:13”
“`## おまけ
月日を0パディングしたい場合は、
“`javascript
a = new Date(‘2020-03-09T19:21:13+09:00’)
a.toLocaleDateString(“ja-JP”, {timeZone:
Node.jsのworker_threadsに何を渡すべきか
久々にScalaの世界からJSの世界に帰ってきました。
#1. 本日の課題
本来Node.jsは非同期処理をストイックに突き詰めることでマルチスレッドやマルチプロセスのようなオーバーヘッドを伴う方法よりも高効率に並列処理を実現しているわけです。
ただし、それが有効なのは頻繁に「待ち」≒「I/O処理」が発生する場合に限られます。
ひたすらI/OなしでCPUをぶん回す処理、を複数同時にやれって言われたらシングルスレッドなNodeはマルチスレッドに勝てません。ですがですが、Nodeにだってマルチスレッド/マルチプロセスの仕組みはあります。
さて今回は、
– 数百MB~数GB程度のデータ構造(変数として持っている)に対して
– 秒オーダーの時間をかけておこなう検索処理を
– 複数回おこなう
– 元のデータ構造は更新しない(Read Only)という要件で、この「複数回おこなう」というところをマルチスレッドかマルチプロセスで並列化して時間を短縮したい、というお題になります。[^heavy]
# 2.候補
## child_process/cluster
どちらもマルチプロセスなア
Trelloの完了したタスクをGASで自動アーカイブする
#はじめに
仕事のタスク整理にTrelloを使いますが、完了したタスクを手動でアーカイブすると判断に迷ったり、手間を感じることがあるので、完了してから一定期間経過したものをGoogleAppsScript(GAS)で自動アーカイブするようにしました。
#準備
TrelloのAPIをGASで使用するにはAPIキーやトークンの取得が必要になります。
方法は[こちらの記事](https://qiita.com/RYOSUKE310/items/016549922a17376efdf8)を参考にしてください。#処理の流れ
1. 完了のリストにあるカードを取得する
2. 取得したカードの最終更新日が7日経過していれば、アーカイブする
3. アーカイブしたカードの情報をスプレッドシートに出力(追記)する#コード
###①カードの取得とアーカイブ対象の選定
“`javascript:cardArchived.gs
// カードのアーカイブ
function cardArchived() {// スクリプトプロパティのオブジェクト取得
var scriptProper
Fullcalendarでイベント作成するも、なぜか月表示した時に、9時以降にならないとその日に表示されない問題
カレンダー界のパケットモンスター、きゃりーぱみゅぱみゅこと、FullCalendarには、イベント作成機能がある。
しかし、こいつはなぜか、9時を一日の終わりとみなしているらしく、20日8時30分とかにイベント作成しても、19日に表示されて困った。これを解決する方法は、optionsにnextDayThreshold: ’00:00:00’を明記することだったが、[公式ドキュメント](https://fullcalendar.io/docs/nextDayThreshold)には、defaultが’00:00:00’であると書いてある
ところで、ご存知の通り、日本時間9時は世界標準時で0時なのである。
だから当然タイムゾーン設定が悪いのだと思う人がいるだろうが、timezoneを東京にしても結果は同じなのである。
この問題、わかる人はコメントをください。[参考サイト](https://kaede.jp/2014/08/30175019.html)
ES2015以降をお勉強するのに、Svelte REPLが楽しかったので紹介しておく
# Svelte?
HTML+JavascriptをJavascriptにコンパイルしてくれるsvelte。ナンノコッチャという人は、意識高めで解説してくださっている[ReactとVueを改善したSvelteというライブラリーについて](https://qiita.com/so99ynoodles/items/a8144ced1a21467c6300)を斜めすると良いかと。要するに、素のjavascriptへの回帰を可能とするのがSvelte(日本語読みするならば、「滑る手」?)というわけ。実行速度的には素のjavascriptがvueやreactよりも速い。が、普通に素のjsを書くとある程度の規模で破綻する。私の理解としては、Svelteによる『簡潔なjs->素のjs』のコンパイルにより、普通のエンジニアでもそこそこの規模感までは破綻せずに、素のjavascriptで行けるようにすることがメリット。
これにより、Svelte経由で生成された素のjavascriptは、軽量なことで有名なelmやvueよりなども、よりファイルサイズが小さく高速に動作する、ものらしい。
[](htt
iCheckを使用したチェックボックスでチェックの数を制限する方法
iCheck.jsを使用したチェックボックスでチェックの数を制限したいと思ったのですが、
iCheckだと普通のclickやchangeイベントなどは使えないんですよね。そこでiCheckの場合のチェックボックスのチェックの数を制限する方法をご紹介します。
前提として、jQueryとiCheck.jsは既に読み込んでいるものとします。
“`index.html
関連する記事
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関連のことを調べてみた