【Velo入門】Hello WorldからVeloの勉強法

## はじめに
この記事では、Veloを使う最初の一歩として、テキスト要素のコンテンツをHello World!に変更する方法と
自分がVeloを使い始めた際に「役に立った」「知りたかったな」という情報、Veloで何ができるのか、何から学べばいいのかを簡単にまとめます。

:::note info
この記事は、Wixエディターの基本操作は理解しているけど、プログラミングは初心者だよという方を対象とします。
:::

## Veloとは？

Veloは、Wixで利用できるWeb開発とカスタマイズを可能にするための開発プラットホームです。
Velo独自のJavaScriptを使用して、フロントエンドのカスタマイズやバックエンド開発、データベースの管理、外部のAPIとの連携などを行うことができる便利なツールです。

簡単に言うと、「WixはノーコードツールだけどJavaScriptを使って動きをつけたり、データを受けとったり渡したり、計算もできるよ！」というものです。

## とりあえず動かしてみる
では、さっそく動かしてみましょう！
プログラミングの伝統に倣って、Hello World!をVeloを使って表示してみます。

### :one: 開発モードを有効にする

まずはVeloを動かすために**適当なサイトを用意**し、エディタ上部のメニューから**開発モードを有効**にします。

![2023-04-25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365910/28d3995e-6e78-ae91-7ef0-4b22d50de9e0.png)

#### 開発画面
開発モードを有効にするとエディタ画面に**開発環境**が現れます。
![2023-06-05 (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365910/f8eab3be-1c9c-4522-1ba7-f7acfae86f2e.png)
##### Veloサイドバー
Velo サイドバーには、
* ページコード
* 公開・バックエンドファイル
* コード検索
* コードパッケージ
* データベース
* デベロッパツール
* ヘルプ

など、サイトを構成するすべてのファイルとツール、ヘルプページへのリンクが表示されます。
詳しくはこちら↓

https://support.wix.com/en/article/velo-working-with-the-velo-sidebar

##### コードパネル
ここでサイトのコードを編集できます。
機能について詳しく知りたい方はこちら↓

https://support.wix.com/ja/article/velo%EF%BC%9A%E3%82%B3%E3%83%BC%E3%83%89%E3%83%91%E3%83%8D%E3%83%AB%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B

###### プロパティ＆イベントパネル
コードパネルの右側にはプロパティ＆イベントパネルがあります。
IDの変更やクリックしたら、要素にカーソルがホバーしたらなどのイベントハンドラーを追加したり、選択した要素の使い方（リファレンスへのリンク）を確認することができます。


### :two: IDを変更
各要素には固有のIDが付与されています。
デフォルトのID名ではわかりづらいので、**わかりやすい名前に変更**します。
エディタでテキスト要素をクリックして選択、プロパティ＆イベントパネルからIDを'message'に変更しましょう。
![IDを変更.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365910/4cb0fa9d-dfde-ea21-cd91-ee16c9133bc0.gif)


### :three: 要素を取得する

$w()に要素のIDを渡すことで特定の要素を取得することができます。
（IDの前にハッシュタグ'#'が付きます）

**例：$w('#elementId')**

$wは、WixのVeloコード内で要素やコンポーネントを操作するための特殊なオブジェクトです。
これによりWix内の要素やプロパティやメソッドにアクセスすることができます。

つまり、ID'message'のテキスト要素を取得するには下記のようになります。
```javascript
$w('#message')
```
### :four: テキストコンテンツを置き換える
要素に対してどのようなプロパティが使えるのかはリファレンスを見ることで確認できます。
textプロパティを設定することで、テキストの内容を変更するできそうです。

https://www.wix.com/velo/reference/$w/text/text

リファレンスの使用例を見ると次のコードになります。

```javascript
$w('#message').text = 'Hello World!';
```

このコードをデフォルトで表示されている$w.onReadyの中に記述します。
$w.onReadyは、ページが完全にロードされた後に実行される関数です。

最終的なコードはこのようになります。
```javascript:ホーム
$w.onReady(function () {
    $w('#message').text = 'Hello World!';
});
```

### :five: プレビューで確認
プレビューでテキストが変更できたか確認してみましょう。

![2023-06-05 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365910/5c4e398e-82cb-8e22-d030-dad1b5b72949.png)

テキストコンテンツが'Hello World!'となっていれば完成です！
お疲れさまでした:thumbsup:

## Veloで何ができるのか
Veloを使うと、テキストを表示するだけでなく、ユーザーがボタンをクリックするとメッセージを表示するようなこともできます。また、データベースに情報を保存したり、他のウェブサービスと連携したりとアイディア次第であらゆるカスタマイズが可能となります。

### :point_right: Veloで作られたシステム例

#### データベースを検索する機能
https://www.youtube.com/watch?v=ZCIXL1EwoGQ&t=1066s

#### 郵便番号から住所を自動入力
https://qiita.com/una_creation/items/7c89e190d22275e948d0


## おすすめの勉強法
最後にVeloを使う上で重要なリンクや勉強法を紹介します。

### Velo編
#### Veloリファレンスのチュートリアル
Veloリファレンスは、Veloの機能や使用例などが書かれた参考書や辞書のようなものです。
英語のリファレンスですが、チュートリアルも載っています。

https://www.wix.com/velo/reference/tutorials

#### Wix Learn
Wixが提供するオンライン学習プラットフォームです。
こちらも英語ですが、動画でVeloの使い方を解説してくれます。
個人的にはこちらの動画から入るのがわかりやすかったです。

https://ja.wix.com/learn/courses/coding/start-coding-with-velo-ja#about-velo-ja

#### Wixヘルプセンター
Wixヘルプセンターでは、Wixに関する情報やサポートが提供されています。
Veloの基本情報、始め方、コードガイドなど、実際のコードや使い方まで細かく案内してくれます。

https://support.wix.com/ja/velo-by-wix

#### Velo Examples
Veloの実際の使用例やサンプルプロジェクトを閲覧できるページです。
実際のコードが見れるのはもちろん、自分のエディタ上でサンプルサイトを動かすこともできます。

https://www.wix.com/velo/examples

#### Wix Japanの公式YouTubeチャンネル
Wix Japanの公式YouTubeチャンネルでは、Veloのサンプルコードを動画で解説してくれています。
https://www.youtube.com/playlist?list=PLi-yTrdxNej4ZMXgl78X9ax7L7djt0NoX

### JavaScript編
Veloは、JavaScriptがベースとなるので、JavaScriptも併せて学習が必要です。

#### Progate
環境構築なしにブラウザ上でコーディングを行いながら学習できます。

https://prog-8.com/

#### ドットインストール
短い動画レッスン形式で、基礎的な内容から実践的な内容まで学ぶことができます。

https://dotinstall.com/

#### MDN JavaScript リファレンス
JavaScriptをはじめとするウェブ開発の基礎から、より高度なトピックや新しいウェブ技術についての情報まで無料で提供してくれています。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference

## 最後に
学習の参考になれば嬉しいです。