場所ベースのtodoアプリ
7048 ワード
私は、私はタスクを完了する必要があるアカウントにかかるtodoアプリケーションを構築するために反応を使用したい.私は家の中で「ミルクを買いません」というわけではありません.私は私のtodoアプリケーションがスマートであり、私はどこにいるか、私はどこに行くの意味を理解するタスクを示しています.
ドトミック
あなたが不慣れであるならばTodoMVC , それは、多くの助けを借りて、2012年ごろにパパOsmaniとSindrecontributors “今日の人気のJavaScript MV *フレームワークのほとんどで実装されている同じTODOアプリケーションを提供するプロジェクトとして-長年にわたって-フレームワークのためのスピードデートとしてそれを考える.”( 1 )
ToDomVCの実装を開始点として、我々は場所の機能を追加を開始する予定です. トド反応成分で緯度と経度を加える []マップコンポーネントにマーカーを表示します. また、最新のES 6と反応機能を使用してサンプルを更新するハウスキーピングの少しがあります.
//todo : "hello world "を実行する
“Hello World”をすぐに開始するための少なくとも2つのパスがあります.
あなたが働くアプリケーションから始めて、それがどのように働くかについて理解するために離れてそれをすることを望む脱構築主義者のより多くであるならば、
//ToDo :コンポーネントを追加する
反応コンポーネントは、ユーザーインターフェースの独立して再利用可能な部分をつくるための構成である.コンポーネントは、プロパティを入力として受け取り、レンダリングできる反応要素を返します.
todomvcはモデル,ビュー,コントローラが独立したアーキテクチャを実現することを目標とした.反応は、HTML/CSSからのJavaScriptのような人工的に別々のテクノロジーでなく、両方を含む疎に結合した構成要素によるむしろ別々の懸念を目的とします.ReactJSorgMain Concepts このデザインアプローチについてもっと詳しく説明します.
次のコンポーネントソースを確認します.デフォルトのテキスト入力ボックスを定義します.ロジックのいくつかを記述するのに役立つインラインコメントがあります.
//ToDo :マップを追加する
地図のために、我々は使用するつもりですMap Image API 静的イメージを取得するには、迅速かつ簡単な方法を提供します.パラメータはいくつかの使用になりますが、ここで基礎を解いてください. これらのパラメータの各々は、ユーザーに豊富なカスタマイズオプションを提供するためにコンポーネントの上の小道具または状態として記憶されることができました.マップイメージAPIに送る最後のパラメータは
私のToDoアプリの場合、私は場所と2つのタスクを追加しました 「図書館を返す」37.86836、122.26859 TechCrunchのためのピックアップバッジ これらのtodo項目のために作成したいPOIクエリは以下のようになります
ここでは、それぞれで再レンダリングされるマップコンポーネントの例です
//ToDo :ラップアップする
この最初のポストはTODAMVCを導入しました.そして、非常に基本的な反応成分のカップルがここにマップイメージAPIを活用します.今後の反応の記事では、この例には、ジオコーディングのルックアップのためのイベントの処理に対応するために、この例に深く飛び込むだろう、条件付きレンダリングでは、近くの場所でマップのクラスタリングを効率的にToDoの場所の間に取得する行列のルーティングは、場所の検索に関連するToDo項目を見つけるために、いくつかの他のプロジェクトの統合は、最終的なtodoアプリを磨くために.
ドトミック
あなたが不慣れであるならばTodoMVC , それは、多くの助けを借りて、2012年ごろにパパOsmaniとSindrecontributors “今日の人気のJavaScript MV *フレームワークのほとんどで実装されている同じTODOアプリケーションを提供するプロジェクトとして-長年にわたって-フレームワークのためのスピードデートとしてそれを考える.”( 1 )
ToDomVCの実装を開始点として、我々は場所の機能を追加を開始する予定です.
//todo : "hello world "を実行する
“Hello World”をすぐに開始するための少なくとも2つのパスがあります.
あなたが働くアプリケーションから始めて、それがどのように働くかについて理解するために離れてそれをすることを望む脱構築主義者のより多くであるならば、
git clone https://github.com/tastejs/todomvc.git
cd todomvc
python -m SimpleHTTPServer
あなたは見ることができるはずですhttp://localhost:8000 そして、例/反応で見つかる反応例に移動してください.あなたがコンストラクリストのより多くの場合、空白のスレートを開始し、ピースを追加することによって構築するnpx create-react-app my-todo-app
cd my-todo-app
npm start
私はこのアプローチを好むのでcreate-react-app 終了するには、表示することができますhttp://localhost:3000 ライブリロードと基本的なハローワールド反応アプリで.//ToDo :コンポーネントを追加する
反応コンポーネントは、ユーザーインターフェースの独立して再利用可能な部分をつくるための構成である.コンポーネントは、プロパティを入力として受け取り、レンダリングできる反応要素を返します.
todomvcはモデル,ビュー,コントローラが独立したアーキテクチャを実現することを目標とした.反応は、HTML/CSSからのJavaScriptのような人工的に別々のテクノロジーでなく、両方を含む疎に結合した構成要素によるむしろ別々の懸念を目的とします.ReactJSorgMain Concepts このデザインアプローチについてもっと詳しく説明します.
次のコンポーネントソースを確認します.デフォルトのテキスト入力ボックスを定義します.ロジックのいくつかを記述するのに役立つインラインコメントがあります.
import React, { Component } from 'react';
// This class definition is a React.Component so that we
// can use it in multiple places for the app.
class Location extends Component {
// The constructor takes properties defined as element attributes
// defined in JSX along with an initial default value for state.
constructor(props) {
super(props);
this.state = {
value: '0,0', // Null Island
error: null,
}
}
// When the component is rendered to the DOM for the first time
// such as at page load we call the Geolocation API to determine
// a latitude and longitude for the browser
componentDidMount() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
(position) => {
this.setState({
value: position.coords.latitude + ',' + position.coords.longitude,
error: null,
});
},
(error) => this.setState(
{error: error.message}
)
);
}
}
// Respond to user input with event callback
changeLocation(evt) {
this.setState({
value: evt.target.value,
}
)
}
// The JSX definition for how to render this component on the page.
// In this case, it's a simple input field for new todo items.
render() {
return (
<input
className="new-todo"
value={ this.state.value }
onChange={ evt => this.changeLocation(evt) }
/>
);
}
}
//ToDo :マップを追加する
地図のために、我々は使用するつもりですMap Image API 静的イメージを取得するには、迅速かつ簡単な方法を提供します.パラメータはいくつかの使用になりますが、ここで基礎を解いてください.
w=600
指定した画像タイルの幅を指定し、h=300
高さz=10
ズームレベルを指定するt=5
さまざまなスタイルの衛星タイル、トランジットなどから選択できるレンダリングスキームを指定します.poitxs=1
, poitxc=black
, and poitfc=yellow
関心のサイズ、背景色、および前景色の色を指定しますapp_id=...
and app_code=...
ここの開発者プロジェクトのセクションで見つけられて、どんなAPIででも働くために必要です.poi=
任意のマーカーの緯度と経度のコンマ区切りのリストのために我々は配置したい.私のToDoアプリの場合、私は場所と2つのタスクを追加しました
poi=37.86836,-122.26859,37.784117,-122.401386
.ここでは、それぞれで再レンダリングされるマップコンポーネントの例です
setState()
興味のあるポイントを追加するときにコールします.class Map extends Component {
// For conciseness simply included all parameters in the querystring directly
constructor(props) {
super(props);
this.state = {
url: 'https://image.maps.api.here.com/mia/1.6/mapview?w=600&h=300&z=10&t=5&poitxs=16&poitxc=black&poifc=yellow',
points: [],
}
}
// Helper function to format list of points
getPOIList() {
if (this.state.points.length > 0) {
let param = '&poi=';
for (var poi in this.state.points) {
param += poi.latitude + ',' + poi.longitude;
}
return param;
}
return '';
}
// Render method builds the URL dynamically to fetch the image from the
// HERE Map Image API
render() {
return (
<img
src={ this.state.url
+ '&app_id=' + this.props.app_id
+ '&app_code=' + this.props.app_code
+ this.getPOIList()
}
alt="Todo Map"/>
);
}
}
一度定義すると、ルートコンポーネントコンポーネントなどの他のコンポーネントにこのコンポーネントを再利用できます.<Map app_id="PUT_APP_ID_HERE" app_code="PUT_APP_CODE_HERE" />
//ToDo :ラップアップする
この最初のポストはTODAMVCを導入しました.そして、非常に基本的な反応成分のカップルがここにマップイメージAPIを活用します.今後の反応の記事では、この例には、ジオコーディングのルックアップのためのイベントの処理に対応するために、この例に深く飛び込むだろう、条件付きレンダリングでは、近くの場所でマップのクラスタリングを効率的にToDoの場所の間に取得する行列のルーティングは、場所の検索に関連するToDo項目を見つけるために、いくつかの他のプロジェクトの統合は、最終的なtodoアプリを磨くために.
Reference
この問題について(場所ベースのtodoアプリ), 我々は、より多くの情報をここで見つけました https://dev.to/j12y/a-location-based-todo-app-3eeeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol