サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16e
www.hypertextcandy.com
オブジェクト指向とは、一言で言うと、「データとデータに対する演算をひとまとめにするプログラミング手法」だと思います。 JavaScript も、オブジェクト指向の機能を備えています。ただし、Java や Python などの他言語で採用されるクラスベースの仕組みではなく、「プロトタイプオブジェクト」をベースとした独特な仕組みなため、少しとっつきにくいかもしれません。 しかし、プロトタイプベースの仕組みは、理解すれば(やはり JavaScript らしく)かなり単純です。そして、オブジェクト指向のプログラミングスタイルは、再利用可能な UI コンポーネントを表現するのに役に立ちます。 この記事では、そんな JavaScript のオブジェクト指向とその活用法を紹介します。前半はざっくり文法的な説明をして、後半でコンポーネントの実装例を載せています。最後に、ES2015 で導入されたクラス記法
本記事では、JavaScript 初心者の方向けに、ブラウザにおける JavaScript 開発の基礎について書いていきます。 最近は React や Vue.js などのフレームワークがスタンダードになって、「生の」JavaScript を扱うことは少なくなっているかもしれません。しかし、フレームワークの裏側で動く仕組みは当然同じです。技術トレンドが移り変わっても対応できる「基礎知識」を身につける、一助になれば幸いです。 少なくとも、HTML / CSS と、JavaScript の文法知識を前提としています。 フロントエンド、つまりブラウザを実行環境とする JavaScript を扱います。Node.js などのサーバサイドの話題は含みません。 そもそもDOMって? JavaScript の主な目的は、Web ページの表示を変化させることです。 フレームワークや非同期処理など、他にもい
Laravelでは各テーブルのプライマリーキーがAUTO_INCREMENT、つまり自動連番であることを前提にModelクラスがデフォルト設定されていますが、この設定は簡単にカスタマイズすることができます。 UUIDのメリット はじめに、自動連番ではなくUUIDをプライマリーキーとして使う理由について簡単にコメントします。 自動連番の代わりにUUIDを使うと、複数のデータベースで分散してデータを持つ場合やデータを移行する場合にもプライマリーキーの重複を避けられます。 また、多くの場合URLの一部にIDを使用しますが、私が担当した案件でクライアント様から「IDの予測がつきにくくしてほしい」という要望を受けたこともありますし(/users/123 があるなら122番ユーザーもいるとバレる)、別の案件では新規サービス開発時に「投稿IDが3とかだったらまだ使われてない感が出て格好悪い」と言われたこ
この連載記事は、これから React を学びたい JavaScript 開発者のための入門コンテンツです。対象とする React のバージョンは執筆時点で最新の v16.13 です。連載記事は以下の通り。 Reactとは何か JSX 属性と状態 フォームとイベントハンドリング ToDoアプリを作ってみよう 副作用 カスタムフック Reactプロジェクトを始める方法 本章はここまでのおさらいです。ToDo アプリのサンプルを一緒に作っていきましょう。 作るもの See the Pen React Todo Demo by Masahiro Harada (@MasahiroHarada) on CodePen. テキスト入力欄にタスクを書き込んでエンターキーを押すと下のリストに追加されます。 完了したタスクは、チェックボックスを ON にします。視覚効果として、完了済みのタスクは文字を薄くし
この連載記事は、React を学びたい JavaScript 開発者のための入門コンテンツです。対象とする React のバージョンは執筆時点で最新の v16.13 系です。連載記事は以下の通り。 Reactとは何か JSX 属性と状態 フォームとイベントハンドリング ToDoアプリを作ってみよう 副作用 カスタムフック Reactプロジェクトを始める方法 本章ではまず、React とは何のための、どのような特徴を持ったライブラリなのか、について説明します。実際のコードが出てくるのは次章以降なので、抽象的に感じられる箇所もあると思います。後続の章で React の機能を知ると、よりよく理解できるはずなので、とりあえずそのつもりで読み進めてください。 React とは React は、自称「ユーザインターフェース構築のための JavaScript ライブラリ」です。少し抽象的なので Web
2020.04.30 モダンJavaScript概論 − Node, npm, ECMAScript, Babel, Webpack この記事では、モダンな JavaScript を書くための前提として知っておくべき、いくつかのキーワードを紹介します。想定読者は、初心者 〜 jQuery なら書けるレベルの開発者です。これから React や Vue.js を学びたい方、または Web 開発の世界に飛び込む新人さんなどの学習の助けになれば、と思います。 「モダン」な JavaScript ここで言う「モダン」とはどういう意味でしょうか? 「モダン JavaScript」という表現は数年前から目にしますが、大抵 ES2015(JavaScript の 2015 年バージョン)以降の JavaScript を指しているようです。確かに、const / let やアロー関数などの文法的な改善、A
この記事では、Spring Boot アプリに Create React App を組み合わせて SPA の基盤を作成する方法を紹介します。 SPA としての配信するには、フロントエンドとサーバーサイドを完全に分けて、Nginx などでプロキシする方法もありますが、今回紹介するのは、よりインフラの設定が少なくて済む、React を Spring Boot から配信する方法です。 Create React App 導入 Spring Boot まずは普通に、Spring Initializr で Spring Boot アプリが作成されていることを前提とします。
この記事では、React で SPA を構築する場合に、認証状態によってアクセスできるページを制限する方法を紹介します。 現実的なアプリケーションでは必須の要件かと思いますので、これから SPA 開発にチャレンジする、という方は参考にしてみてください。 サンプルアプリ CodeSandbox 今回作成するサンプルアプリを載せておきます。 CodeSandbox のページからも確認いただけます。 要件 サンプルアプリは以下の要件を満たします。 パス 要件
この記事では、いくつかの簡単なサンプルを通して、関数型の React コンポーネントにおいて、レンダリングと副作用 Hook(useEffect)がいつ実行されるのかを検証してみます。 関数型コンポーネントのレンダリング 先に検証から得られたルールを要約すると、以下の通りです。 内部状態またはプロパティが変更されると、コンポーネントの関数が再実行される。 関数の結果が前回の呼び出し時と同じであれば、レンダリングは発生しない。 レンダリングが完了すると、useEffect が実行される。 3番目に関して、レンダリング完了後に必ず useEffect が呼ばれるのか、一回だけ呼ばれるのか、特定の内部状態をチェックして変化があったときのみ呼ばれるのか、その挙動は useEffect の第二引数に依存します。 これらのルールを理解すれば、ほとんどのケースでレンダリングと副作用 Hook の挙動を予
この記事では、シングルページアプリケーション開発での Web API 設計について書いていきます。 ここで言う「エンドポイント」とは、HTTP メソッドと URL の組み合わせです。また、本記事で扱うのは、いわゆる REST API と呼ばれるタイプの Web API です。最近は GraphQL が台頭してきていますが、まだ現場では REST タイプの API を扱うことがほとんどでしょう。 API 設計は大きく2つの側面があります。エンドポイント定義と、リクエストおよびレスポンスメッセージの JSON 定義です。本記事では、特にエンドポイント定義の設計について取りあげます。なぜなら、どちらかというと、エンドポイント定義のほうが、これから SPA 開発にチャレンジする方にとって、難しさがあるように感じるからです。 Web API とは 何を API にするのか まず、そもそも何を API
この記事では、React コミュニティにおけるルーティングライブラリのデファクトスタンダード React Router の基本的な機能を紹介します。 以前の記事『Vue.jsエンジニアのためのReact入門』と同様に、主に Vue Router をひととおり学習した方向けに、React Router ならどうやるのか?という視点でまとめます。 とはいえ前記事よりはゆるい比較なので、Vue Router 知らない方でも React Router の入門として読めると思います。 ルーティングライブラリとは Vue Router 知っている皆さんには説明不要かもしれませんが、おさらいです。 Vue Router も React Router も、「ルーティングライブラリ」と呼ばれます。 ルーティングライブラリは、SPA(Single Page Application)には欠かせない存在で、紙芝居
皆さん、コードエディタは何を使っているでしょうか? 私はフロントエンド開発では Visual Studio Code を使っています。 Sublime Text や Atom など(Brackets なんてのもありましたね)のエディタのなかで、後発の Visual Studio Code が最近はデファクトスタンダードになりつつある感じがします。 様々な「拡張機能」をインストールして自分好みにパワーアップできることが Visual Studio Code の魅力の一つです。 この記事では、個人的に気に入って使っている拡張機能を紹介します。 Auto Rename Tag 片方のタグを編集すると、対応するタグの名前も自動的に編集してくれる拡張機能。 WebStorm などの JetBrains 社製品にはデフォルトで備わっていましたが、VSCode にも欲しかった機能です。 Better C
この記事では、React アプリケーションに Redux を組み合わせる方法を紹介します。 タイトルの通り、React の機能である Hook と Redux の組み込みを簡単にしてくれるライブラリ Redux Toolkit を活用した比較的新しめの方法なので、他の解説記事とは少し異なる記述になるかもしれません。 これから React や Redux を勉強する方は戸惑うかもしれませんが、導入方法がいくつかあるというだけで、どちらも間違いではないので、参考の一つとして読んでください。 Redux とは 状態管理 Redux とは、JavaScript製の状態管理ライブラリです。 「状態」とは、アプリケーションで扱う動的なデータという理解でよいでしょう。たとえばユーザー名とか、いいねの数が「状態」です。状態は時系列とともに変化します。 状態管理ライブラリが解決する問題は、コンポーネントをま
この記事では、JavaScript のカスタムイベントについて紹介します。 タイトルに「中級編!?」とありますが、文法自体は全然むずかしくないです。ただ、入門書などではあまり触れられていないようです。 イベント自体がとても JavaScript らしい機能ですし、カスタムイベントは覚えておくとここぞというときにプログラムの表現の幅は広がるので、チェックして損はありません。 イベントとは イベントは基本的に HTML 要素から発行されます。一番馴染みのあるイベントは「クリック」でしょう。 const buttonElem = document.querySelector('.button'); buttonElem.addEventListener('click', function(event) { // 第一引数はイベントに関する情報が詰まったオブジェクト // たとえばevent.ta
この章では写真投稿のための Web API を実装します。 AWS S3 写真は AWS S3 にアップロードして保管します。 ここで S3 のバケットと開発用の IAM ユーザーを作成しておきましょう。 S3 バケット 「バケットを作成する」をクリックするとウィザードが開きます。 リージョンは「アジアパシフィック(東京)」を選択すればよいでしょう。 「アクセス許可の設定」では、4つのチェックボックスを外してください。 ここにチェックが付いていると写真の公開ができません。 IAM ユーザー サービスから IAM を選択し、さらに「ユーザー」を選択します。 「ユーザーを追加」をクリックすると作成フォームに移動します。 Laravel アプリケーションから S3 にアクセスするユーザーを作成するので「AWS アクセスの種類を選択」では「プログラムによるアクセス」にチェックを付けます。 「アクセ
この記事では、Vue.js は覚えたけど React もやってみたい、というエンジニア向けに、Vue.js における各機能の React での実現方法を比較して紹介します。 私は、慣れない言語やフレームワークを使うときはマニュアルを頭から読むより、「あの機能はこっちではどうやるのかな?」と考えて調べることが多いので、自分自身の React の学習も兼ねてまとめました。 コンポーネントの機能 コンポーネントの作り方 Vue.js Vue コンポーネントは ComponentName.vue のように、.vue 拡張子を持つファイルで表現されますね。<template> <script> <style> それぞれのブロックにテンプレートや振る舞い、スタイル定義を記述します。 <template> <div> <h1>Sample</h1> <h2>This is a component.</h
こんにちわ!最近はフロント開発も担当させていただいてます、Yamamotoです。 今回はエンジニアがデザインを学ぶべく、100のWebサイトのデザイントレースをして、学んだことをまとめてみました。 エンジニアまたは未経験だけど、Webデザインにも興味があるという方の、何かのきっかけになれば幸いです。 目次 なぜ Webデザインを学ぼうと思ったのか デザイントレースについて 100トレースして学んだこと なぜWebデザインを学ぼうと思ったのか ざっくりですが、実務を行いながら以下のように思うことがありました。 細部のデザイン指示がなく、開発の手が止まってしまう どう実装するか目線の発想・提案しか浮かばない 綺麗なコードだけではなく、視野を広げてより良いものを作りたい などなど... デザイナーとエンジニアの業務は差別化されてはいますが、互いに近接し交わる部分も多くあります。そんな中で、業務効
2019.07.21 タブやモーダルなど、よく見かけるフロントエンドUIコンポーネントの紹介と実装サンプル集 この記事では、フロントエンドでよくある UI コンポーネントについて、名前と見た目、なんのために用いられるのか、そして実装サンプルを紹介します。 Web 開発を学び始めた方を対象に想定しています。ここに紹介した基本的な UI 部品はエンジニアのみならず、クライアントやプロデューサー、ディレクター、デザイナーなど Web 開発/制作に関わる人たちにとっての共通言語と言えるでしょう。 モーダル 画面に覆いかぶさる形で表示されるサブウィンドウを、モーダル(ウィンドウ)と呼びます。 付加情報やユーザーのアクションに対する通知などを、画面遷移を伴わず表示させます。表示中の画面からユーザーの意識を離させずに、かつ注意・集中を引き寄せたい場合に利用されることが多いと思います。 モーダルウィンドウ
この連載記事では、Laravel を使用した Web アプリケーションの開発方法を紹介します。実際に(お決まりの?)ToDo アプリを開発する手順を通して Web 開発のエッセンスを学んでいただけるように書いていきます。取り扱う Laravel のバージョンは現時点で最新の 5.7 です。 電子書籍版も公開しています。 第2章では、コードを書くまえの準備としてToDoアプリケーションの設計を行います。 Web 開発初学者さんを念頭に説明を書きましたので、開発経験があって Laravel のことだけ知りたいという方は読み流して大丈夫です。また次章コードを書いていくのでその前に、この章の最後に Web アプリケーションフレームワークについての説明をつけました。 どんな設計が必要? Web アプリケーションを作るにあたっては最低限、以下の4つの設計が必要です。 機能一覧 画面設計 URL設計 テ
上記のようにモーダルウィンドウに表示する内容を props で表現してしまうと、自由度が低く使いまわしにくくなります。たとえば画像やリストやテーブルが入れられませんよね。 そこでスロットを利用します。 <modal> <template #title> This is modal window </template> <template #content> <img src="..." alt="" /> <ul> <li>...</li> </ul> </template> </modal>
最近、Auth0を知る機会がありました。 とても便利なクラウドサービスのようなので、Laravelでの実装を例に使用した感想を書いてみたいと思います。 また、本記事では既にプロジェクト作成済みの想定で、Auth0のセットアップを記載しています。Laravelプロジェクトの作成方法については、本サイトのチュートリアルを是非ご覧ください。 入門Laravelチュートリアル (1) Auth0について Auth0とは? Auth0 はWebやモバイル、レガシーアプリケーションやAPIなどに向けた認証・認可の機能を提供している総合認証プラットフォームで、いわゆるIDaaS (Identity as a Service)ベンダーです。 なにがいいの? アプリケーションに、ユーザー認証やセキュリティを組み込むことは今のサービスには必須になってきています。 実装する際も、Webやモバイル、APIとの連携
この記事では、Laravelプロジェクトを新規作成したときにデフォルトで出来ているディレクトリとファイルを紹介します。フレームワークのディレクトリやファイルにはそれぞれ役割がありますので、Laravel 使い始めの方などに参考にしていただければと思います。 ちなみに今回扱う Laravel のバージョンは 5.7 です。 ルートディレクトリ まずはルートディレクトリ直下から見ていきましょう。 名前 Type 説明
この記事では、Web セキュリティの基本である CSRF をハンズオン形式で解説します。 CSRF の解説は検索すればたくさん出てきますが、私が新人エンジニアだったころは言葉の説明だけ読んでもどうしてもよく分からなかったです。というわけで、実際に攻撃される側の脆弱なサイトと罠サイトを作成して、CSRF 攻撃を実現しながら説明していきたいと思います。 CSRF とは CSRF=クロスサイトリクエストフォージェリ(Cross Site Request Forgeries)は Web アプリケーションへのサイバー攻撃の一種です。日本語にすると「サイトをまたいだリクエストの偽造」でしょうか。「罠サイト」から「標的サイト」へ HTTP リクエストを送信することで「標的サイト」を操作してしまおうという攻撃手法です。 サンプルサイト 攻撃される側の標的サイト 攻撃される側のサイトは Laravel で構
この記事では Laravel のメール送信機能について紹介します。単にコードの断片を載せるだけだとまぁマニュアル(日本語)読めばいいって話になるので、簡単なサンプルコードを作成する流れで説明します。 Laravel のバージョンは 5.7 です。 サンプルの概要 今回はまず以下の通りユーザーがコメントを入力する機能を作成します。 そしてコメントを送信したタイミングでユーザー宛てにサンキューメールを送信する機能を実装します。 準備 コードの雛形生成 認証機能を自動生成。
この記事では、Webpack を使ってレガシーな構成の JavaScript 環境にモジュールシステムを導入しリファクタリングする方法を紹介します。 実際の案件でこれからやろうとしていることです。すでに本番稼働しているアプリですので、なるべくアプリケーションコードに手を加えない方針でいこうと思います。 Webpack とは? Webpack は「バンドラー」と呼ばれるツールです。日本語で「まとめてひとつにする」という意味ですが、主に JavaScript のモジュールシステムを解決してひとつのファイルを出力するツールです。「主に」と書いたのは他にも用途があるからですが、今回は JavaScript のモジュール解決のために利用します。 もともと JavaScript にはモジュールシステムがありませんでした。これはプログラミング言語としては欠陥と言われても仕方のない特徴でしょう。別ファイル
この記事では、サーバーサイドレンダリングする Universal モードの Nuxt.js フロントアプリと、それとは異なるサブドメインで運用される Web API という構成でクッキー認証とCORSを実現する方法を紹介します。 Nuxt でアプリケーションを構築する場合、サーバーサイド(というかデータ取得部分)は Web API になるでしょう。そして Web API での認証といえば JWT を用いたステートレスなトークン認証が一般的かと思います。しかし JWT を LocalStorage に格納する実装は脆弱なアンチパターンであると主張する記事や以下参考リンクの記事を読み、フロントエンド + Web API な構成でもクッキーで認証を行い CORS でクロスサイトなアクセスを防ぐ実装パターンを考えてみました。 今回の実装パターンは以下の記事を参考にしました。 独自ヘッダをチェックす
この記事では、Intersection Observer とその利用例を紹介します。 ある要素が画面上に見えたとき、アニメーションを開始する 同様にある要素が画面上に見えたとき、スライダーを自動で動かす Intersection Observer Intersection Observer とは Intersection Observer は JavaScript の機能の一つです。直訳すると「交差の監視役」でしょうか。「交差」とは聞きなれない言葉ですが、【基準の要素】と【監視される要素】の重なり具合を意味します。 例えばブラウザ画面全体を基準としてある要素を監視したとき、監視対象が30%見えていたら、基準であるブラウザ画面と監視対象が30%重なっている(=交差している)と考えます。 ある基準に対して監視対象が見えている割合と言ってしまっても良いでしょう。 使い方 Intersection
この記事では、先日 Medium に公開された Maximiliano Firtman 氏による記事『Google Play Store now open for Progressive Web Apps 😱』を要約して感想などを加えています。 記事のタイトルを訳すと『Google Play ストアで PWA を配信できるようになった 😱』という感じでしょうか。Web エンジニアとしては惹かれるタイトルですよね。ただ私は Android 事情には疎いですし、結局どういうことなのか?記事を読んでまとめてみようと思いました。 まとめると Android 向け Chrome のバージョン72から Trusted Web Activity が実装された。 ネイティブアプリ内で Web アプリを起動する新しい仕組み。WebView など既存の同種の仕組みの欠点を補っている。よりネイティブと We
Nodeはインストールされているものとします。 npmについても利用したことがある前提で説明を進めます。 また、記事中ではES2015以降のJavaScriptを利用します。 まだあまり馴染みのない方には以下の参考書籍がオススメです。 速習ECMAScript6: 次世代の標準JavaScriptを今すぐマスター! 速習シリーズ 改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで Webpack で環境設定 はじめに SFA を利用した開発を行うためには、Webpack などのモジュールバンドルや Babel によるトランスパイルが必要です。後ほど紹介しますが .vue という独自拡張子・独自構成のファイルを使用するため、最終的には実行可能な JavaScript ファイルにビルドする必要があります。 本格的なバンドラーの設定作業は複雑なので、本来であれば
次のページ
このページを最初にブックマークしてみませんか?
『Hypertext Candy』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く