見出し画像

【応用53%】TECHCAMP名古屋20日目

どうも、ジュンです

いつもご視聴、コメント、高評価、ありがとうございます

TECHCAMP名古屋 73期 副業フリーランスコース20日目で学んだことについてお話します
Ajaxで10個、railsで5個、jbuilderで1個、jQueryで5個、CSSで1個、gitで2個、その他2個のことについて学んだので、それぞれ説明します

★Ajaxで学んだこと★
1.FormData
formタグ内の要素のデータをJavaScriptのオブジェクトにしたものです
input要素に入力された情報が、JavaScriptのオブジェクトとして
キーバリュー形式で表されます

2.attrメソッド
要素が持つ指定属性の値を返します
要素が指定した属性を持っていない場合はundefinedを返します

3.processDataオプション
dataに指定したオブジェクトをクエリ文字列に変換します
デフォルトでtrueです
FormDataを利用する場合は、falseにする必要があります

4.contentTypeオプション
サーバにデータのファイル形式を伝えるオプションです
text/htmlでコンテンツタイプをXMLとして返します
デフォルトでtrueです
FormDataを利用する場合は、falseにする必要があります

5.クエリ文字列
webブラウザなどがwebサーバに送信するデータをURLの末尾に
特定の形式で表記したものです

6.FormDataを利用するときの注意点
processDataオプションおよびcontentTypeオプションで
falseを指定します

7.jbuilder
入力データをJSON形式で出力するテンプレートエンジンです

8.JSONの書き方
json.text @comment.text

json.キー 値の形で記述します

9.disabled属性
Formのsubmitボタンを押したときにtrueになり、
再度押しても反応しなくなります
再度押すためには、disabled属性をfalseにします

10.テンプレートリテラル記法
`(バックティック文字)で囲むことで、テンプレートリテラル記法となります
${}(プレースホルダー)で変数を扱うことができます

★railsで学んだこと★
1.debuggerを起動する方法
debuggerを起動させたい部分でdebuggerと記述します
ブラウザ上で検証を使って、変数の中身を知ることができます

2.binding.pryとdebuggerの違い
binding.pryは処理が止まったあと、ターミナルでコマンドを打って変数の中身を知ることができます
debuggerは止まったあと、ブラウザ上で変数の中身を知ることができます

3.ajaxを実装する時に気をつけること
Gemfileからturbolinksをコメントアウトか削除します
また、turbolinksに関する記述を削除します
自作のAjaxと競合してうまく動かない可能性があるためです

4.非同期通信の実装手順
1.gem 'jquery-rails'を追加します
2.gem 'turbolinks'をコメントアウトします
3.application.jsやapplication.html.erbおよびhamlにturbokinksの記述がある場合は削除します
4.jsファイルを追加しますこのとき、同名のcoffeeファイルがある場合は削除します
5.bundle installします
6.jsファイルでpreventDefaultを利用してデフォルトイベントを解除します
7.jsファイルで$.ajaxを利用し、url,type,data,dataTypeを指定します
FormDataを利用する場合は、processDataとcontentTypeをfalseに設定します
8.コントローラーファイルで、非同期通信を行う箇所でrespond_toを利用してHTMLとJSONの条件分岐を記述します
9.JSONファイルを追加し、コントローラーからjavascriptにデータを送信します
10.jsファイルで$.ajaxに対応するdoneとfailを記述します
11.done側でappendを利用し、イベントに応じてHTMLを追加する処理を記述します
12.fail側で、非同期通信に失敗したときの処理を記述します
いくつかのアプリケーションで非同期通信を実装したものをGithub上に3つ上げているので、
詳しくは概要欄のURLにあるGithubのプルリクとコミットコメントを参照してください
https://github.com/EL93019205/pictweet/pull/5
https://github.com/EL93019205/ajax_drill/pull/1
https://github.com/EL93019205/chat-space/pull/9

5.インクリメンタルサーチの実装手順
1.gem 'jquery-rails'を追加します
2.gem 'turbolinks'をコメントアウトします
3.application.jsやapplication.html.erbおよびhamlにturbokinksの記述がある場合は削除します
4.jsファイルを追加しますこのとき、同名のcoffeeファイルがある場合は削除します
5.bundle installします
6.jsファイルで入力フォームでキーが上がった時に対してイベントを作成します
7.jsファイルで$.ajaxを利用し、url,type,data,dataTypeを指定します
8.コントローラーファイルで、非同期通信を行う箇所でrespond_toを利用してHTMLとJSONの条件分岐を記述します
9.JSONファイルを追加し、コントローラーからjavascriptにデータを送信します
10.jsファイルで$.ajaxに対応するdoneとfailを記述します
11.done側でDOMの子要素を全て削除したあと、入力された値に応じてHTMLを追加する処理を記述します
12.fail側で、非同期通信に失敗したときの処理を記述します
いくつかのアプリケーションでインクリメンタルサーチを実装したものを2つGithub上に上げているので、
詳しくは概要欄のURLにあるGithubのプルリクとコミットコメントを参照してください
https://github.com/EL93019205/search_pictweet/pull/3
https://github.com/EL93019205/chat-space/pull/10

★jbuilderで学んだこと★
1.array!メソッド
JSON形式で配列で返したい時に便利なメソッドです
コードの記述量を減らすことができます

★jQueryで学んだこと★
1.keyupメソッド
キーを離したら処理をさせたい場合に利用します
インクリメンタルサーチでも利用します

2.emptyメソッド
指定したDOM要素の子要素のみを削除するメソッドです
指定したDOM要素自体を削除するremoveメソッドとは異なる点に注意です

3.forEachメソッド
与えられた関数を配列に含まれる各要素に対して1度ずつ呼び出します

配列名.forEach(function(配列の要素を表す変数){
console.log(配列の要素を表す変数);
});

4.animateメソッド
メソッドを利用したオブジェクトが持つプロパティなどを、
指定した値まで徐々に変化させることのできるメソッドです

5.document
最新のHTMLの情報を取得します

★CSSで学んだこと★
1.要素内でスクロールするようにする方法
親要素でoverflow: scroll;を記述します
たったの1行で実現できます

★gitで学んだこと★
1.空のコミットをする方法
git commit --allow-empty -m '空のコミット'

2.GithubDesktopのdescriptionに当たる部分をコマンドで記述する方法
git commit -m "説明" -m “詳細説明"
-mを2つ続けて記述します

★その他★
1.terminalでtabを移動する方法
shift+commandを押しながら十字キー左右で移動できます

2.メモリの使用量を確認する方法
comannd+spaceでspotlight検索を開いて
アクティビティモニタと打ち、Returnキーを押します

この記事が気に入ったらサポートをしてみませんか?