- 0.1. コンポーネント設計の基礎
- 0.2. 【JavaScript】画像投稿時のプレビュー機能
- 0.3. JSONについて HTML やXMLとの違い
- 0.4. React + GraphQL + Apolloで無限スクロール(Offset-based)
- 0.5. chart.jsでレーダーチャートを作成
- 0.6. 駆け出しプログラマ向け、実務で使える「変更容易性」ってなに?
- 0.7. date-fnsで日時をフォーマットしたり、パースする
- 0.8. 内容の異なる複数のモーダルを設置する
- 0.9. DirectCloud-BOXにファイルをアップロードするGitHub Actionを作ってみた
- 0.10. モダンなJSフレームワークは宣言型プログラミングを選ぶ
- 0.11. jQueryチートシート
- 0.12. JavaScriptを基本からまとめてみた【16】【async / await】
- 0.13. ECMAScriptでのバイナリ相互変換メモ
- 0.14. RustからWebAssemblyを作成する
- 0.15. 【初学者向け】JavaScriptのreduceとは?使い道は?
- 0.16. Next.jsで自己紹介サイトを作った。
- 0.17. [JavaScript jQuery]トップに戻るボタンの作成 Ruby on rails
- 1. 初めに
- 2. ボタンを決める
- 3. ボタンの設置
コンポーネント設計の基礎
ソフトウェアコンポーネントについて、Wikipediaでは以下のように記載されています。
[Wikipedia:ソフトウェアコンポーネント](https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88)
>事前に製作されたコンポーネント群を組み合わせて、電気製品や機械製品を作るようにソフトウェアを作れることを強調する。このようにコンポーネント指向の開発ではいくつかのコンポーネントを組み合わせてサービスを開発します。
そのため、ひとつ一つのコンポーネントは様々な組み合わせに耐えうる設計をしなければいけません。
そのようなコンポーネントの設計を行う上での基礎的な考え方を紹介します。## コンポーネントにマージンやポジションなどの外側のレイアウトを設定しない
コンポーネントが持つ情報はコンポーネントの内側の情報だけにとどめることで、外側がどんな状況でも
【JavaScript】画像投稿時のプレビュー機能
画像複数投稿機能以上に詰まっていたプレビュー機能。
ようやく解決できたので備忘録のために投稿します。
jsの記述のルールや基礎的なところ抑えていかなければと思いました。下記解決後コード
2,14,15,30行目の記述に変更を加えています。“`js
document.addEventListener(‘DOMContentLoaded’, function() {
if (document.getElementById(‘store-image’)){
const ImageList = document.getElementById(‘image-list’)const createImageHTML = (blob) => {
const imageElement = document.createElement(‘div’)
imageElement.setAttribute(‘class’, “image-element”)
let imageElementNum = document.querySel
JSONについて HTML やXMLとの違い
#JSONとは
JavaScript Object Notationの略で、ブラウザに表示するものです。
他にもブラウザに表示するものといえばHTMLやXMLなどがあります。
これらと比べて何が違うのでしょうか。#HTML XML JSONの違い
ざっくりですが3つの違いをみていきましょう。***⚫︎HTML***
***・マークアップ言語(文章に意味がある言語 )***
・タグ付けをしてわかりやすくしてある。
・webページ作成などで使う*補足 プログラミング言語はコンピューターに指示を出す言語
“`
Tarotaro@example.comprogrammer
“`
⚫︎XML
・マークアップ言語(文章に意味がある言語 )
・
React + GraphQL + Apolloで無限スクロール(Offset-based)
React+Apolloで無限スクロールを実装した時の備忘録を残しておこう。
無限スクロールそのものより、GraphQLのページネーションの実装で考えることが多い気がする。
↓実装イメージ
![qiitaImage.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136137/c76e320c-ff19-0f90-5279-da71604594a6.gif)
# 1.前提知識・条件
## 1-1.実装環境やライブラリ
クライアントはReact(Javascript)、サーバー側はHasuraでpostgreSQLと繋げるようにし、クライアント側のGraphQLの取り回しはApolloを使用。
“`”@apollo/client”: “^3.3.19
“react”: “^17.0.2
Hasura v1.3.3
“`
無限スクロールのコンポーネントはreact-infinite-scroll-componentを使用
“`”react-infinite-scroll-component”: “^6.
chart.jsでレーダーチャートを作成
##■背景
レーダーチャートを作成する機会があり、実装したので参考にしていただけると幸いです。##■レーダーチャートとは
レーダーチャートは、複数の項目がある変量を構成比に直すことなく正多角形上に表現したグラフ。中心を0とし各項目ごとに値が大きいほど外側になるよう表現する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661515/b18455be-25fc-3729-d2c5-c8289e33fe94.png)
##■レーダーチャート実装
レーダーチャートを0から実装しようとすると、膨大な時間と労力がかかるので、今回は、chart.jsという JavaScript でグラフ(チャート)を描画するためのライブラリを使用しました。
chart.jsではレーダーチャートの他、折れ線グラフ、棒グラフ、円グラフ,散布図なども簡単に作成できます。実装は至ってシンプル・・
①Chart.js読み込み
→CDNに公開されているjsファイルを読み込むことで、Chart.jsが使用可能とな
駆け出しプログラマ向け、実務で使える「変更容易性」ってなに?
# 前置き
こちらの記事は筆者が備忘録的にまとめたものです。
せっかく来てくれた読者の皆様にとっても役に立つように意識して書いてみましたので、
是非最後まで読んでみてください。では、Let us begin!# 変更容易性(EoC: Ease of Changing | Modifiability)
へんこうよういせい とはこれは特に辞書など引っ張ってくる必要もなさそうですね。
意味は、変更のしやすさ になります。変更のしやすさと一口に言っても、– 変更を加える際に必要な変更箇所の数
– 変更を加える際の他の実装への影響度
– 変更に要する時間等々いろいろあるかと思います。
# 変更容易性をコードに適用した例
## 適用前(変更容易性 改善前のコード)
まずは変更容易性があまりないコードを見てみましょう。(下の問題点から見ると早いです)
タスクの進捗ステータスに応じた処理を実行する関数があるとしましょう。“`javascript:javascript
// task は以下ステータス(status) のどれかを持つことにします。(以下 3つのみ です)
//
date-fnsで日時をフォーマットしたり、パースする
Javascriptで日付操作をするライブラリとして、[date-fns](https://date-fns.org/)を重用しています。
これまでは[moment.js](https://momentjs.com/)や[dayjs](https://day.js.org/)などが使われていたみたいですが
momentは開発が止まっていたり、date-fnsの方が関数型で個人的に読みやすいので
今関わっている案件でもmoment => date-fnsに書き換える作業などを行なっています。という事で今回は、date-fnsでよく使っている操作を紹介したいと思います。
### フォーマット
“`javascript
import { format } from ‘date-fns’
import ja from ‘date-fns/locale/ja’console.log(new Date())
// Dateオブジェクト => yyyy/MM/dd
format(new Date(), ‘yyyy/MM/dd’)// Dateオブジェクト => yyyy/MM/
内容の異なる複数のモーダルを設置する
##やりたいこと
>内容の異なる複数のモーダルを設置する##【方法】 data属性によって紐付けする
>data属性とは↓https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes#attr-data-*
##HTML
>
モーダルのボタン:data-modal-open=”紐付ける値”
モーダル:data-modal=”紐付ける値”
modal-2,modal-3などと追加していけばそれと紐付けられたモーダルが出現する>“`html:index.html
>