この単純な仕事を達成するために複雑な例に圧倒されたので、私はこのコンポーネントを共有しています。だから、私は説明の中でできる限りシンプルになろうとします。
Google AutoCompleteコンポーネントは、Google Places APIをめぐるVue.jsラッパーにすぎません。 Vue.jsで書かれたデモにもかかわらず、AutocompleteオブジェクトはJSフレームワークから引き込むことができます。
Vue&Vuemitをインストールする必要があります:
npm install vue -- save npm install vuemit -- saveVuemitライブラリは、Googleコンポーネントとその親のイベント間のイベントを管理するために使用されます。
注: Vue 1.*を使用している場合は、VUE-1ブランチから引っ張る必要があります。
ライブデモを表示します。

このパッケージをインストールするには、コンソールを開き、 npm i google-autocomplete-vue --saveを入力する必要があります。インストール中に問題がある場合は、 force Param: npm i -f google-autocomplete-vue --save
まず、APIキーを取得するには、 Google APIコンソールにサインアップする必要があります:https://console.developers.google.comこれが完了したら、 Googleで与えられたAPIキーをコピーしてJSファイルエントリポイントに貼り付ける必要があります。例:
ブートストラップファイル:bootstrap.js。イベントハンドラーをGlobalyに設定するには、このファイルのVuemitを要求する必要があります。そう:例
エントリポイントファイル:demo.js
注:重要なキーは.ENVファイル内に保持する必要があるため、コードをgitコントロールにプッシュしながら、これに注意してください。
第二に、アプリケーションのエントリポイントにコンポーネントをインポートする必要があるため、必要に応じてグローバルに呼び出すことができます。例:
import GoogleAutocomplete from 'google-autocomplete-vue' ; Places検証は、ユーザーアドレスを処理するのに役立つLaravelライブラリです。その目的は、Googleのように、ユーザーが提出したアドレスがサードパーティサービスを通じて有効であることを確認することです。
リポジトリ:Places検証をご覧ください
まず、コンポーネントをコンパイルしてバンドルファイルを生成するためのエントリポイントを作成する必要があります。例はこちらから入手できます。
第二に、コンポーネントを制御するには、VUEオブジェクトを作成する必要があります。
require ( './bootstrap' ) ;
new Vue ( {
el : '#demo' ,
data :
{
output : { } , address : { } , sent : false , response : { } , config : { }
} ,
mounted ( )
{
//Set an event listener for 'setAddress'.
Vuemit . listen ( 'setAddress' , this . onAddressChanged ) ;
Vuemit . listen ( 'addressWasCleared' , this . onAddressCleared ) ;
} ,
methods :
{
/**
* Submit the data to be evaluated.
*
* @return {Void}
*/
submit ( )
{
this . sent = true ;
this . output = this . address ;
this . address = { } ;
} ,
/**
* Checks whether the output data is valid.
*
* @return {Bool}
*/
isValid ( )
{
return Object . keys ( this . output ) . length > 0 ;
} ,
/**
* Checks whether the output data is not valid.
*
* @return {Bool}
*/
isNotValid ( )
{
return ! this . isValid ( ) ;
} ,
/**
* The callback fired when the autocomplete address change event is fired.
*
* @param {Object}
* @return {Void}
*/
onAddressChanged ( payload )
{
if ( Object . keys ( paypload . place ) . length > 0 ) {
this . address = payload . address ;
this . response = payload . response ;
}
}
/**
* The callback fired when the autocomplete clear event is fired.
*
* @param {Object}
* @return {Void}
*/
onAddressCleared ( )
{
this . address = { } ;
this . response = { } ;
}
}
} ) ;こちらの例を参照してください。
require ( 'laravel-elixir-vue-2' ) ;
var elixir = require ( 'laravel-elixir' ) ;
elixir . config . sourcemaps = false ;
elixir . config . assetsPath = 'src' ;
elixir ( function ( mix )
{
mix . webpack ( 'demo.js' , 'dist/demo.js' ) ;
} ) ;こちらの例を参照してください
< google-autocomplete
class = " input "
input_id = " txtAutocomplete "
:config = " {type: ['geocode']} "
placeholder = " type your address "
>
</ google-autocomplete > :構成は、Places APIのオートコンプリートコンストラクターに渡される構成です。ドキュメントを参照してください。構成は、ドキュメントのoptions引数に対応します。
こちらの例を参照してください。
また、「クラス」プロップを介してcss classを渡すことができます。
このパッケージをフォークし、機能を強化するためのプルリクエストを送信して、お気軽にフォークしてください。
MITライセンス(MIT)。詳細については、ライセンスファイルをご覧ください。
Github Repoに出演してみませんか? Twitterでこのリポジトリのリンクを共有しますか?言葉を広げてください!
Twitterで私をフォローすることを忘れないでください!
ありがとう!
グスタボ・オカント。 [email protected]