友人の会社のWebサイトをHTMLとCSS、Vue.jsを使って二つ作ってみた。

<br>

##友人の会社のWebサイトをHTMLとCSS、Vue.jsを使って二つ作ってみた。
 

会社を立ち上げた友人に「Webサイトを作って欲しい～～!!!」と頼まれたのでHTMLとCSSで1つ、Vue.jsを使って1つ合計2つ作ってみました。もちろん無料で(笑)

これまで自分で作りたいと思ったものを自分で好きにつくったことは何度かあったのですが、人に頼まれて人の求めているデザインで作ったことはなかったので、いい経験になりました。苦労した点も含めて書いてみたいと思います。

 

###HTMLバージョン
まずは、どういうものを作りたいのかというのがすごくぼんやりしてたので、そこをはっきりしてほしいと、色んな会社のサイトやテンプレートを送って決めてもらいました。使いたい文章や写真をワードに貼って送ってもらいました。

データベースは必要ないかなと思ったので、デザインを選んでもらって、HTMLとCSS、JavaScriptでさっそく作り始めた。デプロイはNetlifyで問題ないだろう。

 

3割くらいつくり進めて共有したところ、「やっぱり根本的に変えたい。。」と伝えられ、「マジかよ」と思いましたね。ここまでで大体5時間くらい使いました。。。途中まで進めての根本的な修正は思ってたよりもめんどくさくてイラっとした。けっこーやる気なくなりかけた。

 

2回目の根本的な修正は避けたかったのでしっかりデザインを選んでもらいました。どういったものを作りたいのかわりと細かく確認しました。

で、↓のサイトからデザインを再度決めてもらった。こんなにたくさんの種類が選べて、無料で使えるのはすごい。

https://template-party.com/

<p>翌日、選んでもらったテンプレートをもとに再度どこにどんな文章、写真を使うかをワードに貼ってもらって再度送ってもらった。確認して「全然テンプレートどおりじゃねえ。全然わからん。もうちょっと細かくテンプレート見て欲しい。」と伝えたところ、矢印つきで希望が送られてきました。こんな感じ。↓</p>
<p> </p>
<p> </p>
<p><strong>「快適な暮らしを実現」　←　ここの文章を大きく、カッコよくオシャレな感じで!!!</strong></p>
<p><strong>「イノベーション」←　サイズアップカッコいい感じ!!!</strong></p>
<p> </p>
<p> </p>
<p>やっぱよくわかんねえーわ。言いたいことはわかるけど。テンプレートと全然ちげーー。ていうかなんで写真がURLじゃなくべた貼りなんだよ。</p>
<p>おそらく、イメージは自分の中であるんだろうな、ととりあえず納得して作り始めました。「なんでこんなくそめんどくさいことを無料でやってるんだ」と一人でイライラしたり、楽しんだりしながらHTMLとCSSを書き書き。</p>
<p>HTMLとCSSって難しいですね。エラーが出るわけでもないし、ただただ、思った通りに配置されない。細かく修正の連続で。テンプレート通りならこのめんどくさい作業は必要ないのになと思いながら。</p>
<p> </p>
<p>途中何度か彼から連絡がきましたが、経過の共有はせず。翌日までシカト。</p>
<p>また変更の連絡が来てもめんどくさいし、そもそも「なんでこんなくそめんどくさいことを俺は無料でやってるんだ?」っていう思いがCSSと戦うたびに、 ｛width:350px; height:400px;｝っていってるのに全然動かないたびに、「なんでお前は言うことを聞けないんだt???。書いたとおりに動きなよ!」　　「おいおいおい。お前はここで動かなくていいんだよ？」っていう思いとともに100回くらい湧き上がってきてましたから。</p>
<p> </p>
<p>テンプレートは基本的なデザインができてるから、すごく便利だけど、コードが多くてどこを修正すればいいのか探すのが割とめんどくさい。細かな修正がめんどくさくなったからTailwind使ってmarginなどの微修正をしたのですが、謎にレイアウトが崩れたのでTailwind使わずにCSSで書き直したり。　「ふわーーーっ!!!」</p>
<p> </p>
<p>翌日、割とできたと思ったので「dou?」というLINEとともにURLを共有。</p>
<p>すっごい喜んでくれました！「めちゃくちゃいい！すごい良い!」と。　</p>
<p> </p>
<p>。。。</p>
<p> </p>
<p>これまで感じたことのない気持ちになりました。胸が温かくなるというか、これまで苦労ばっかりかけられてきたあの親不孝息子から突然、「拝啓　お元気ですか？　突然のお手紙すみません。先日母の日がありましたが、ふと振り返ったときに、これまでの感謝を何も伝えられていないと思ったので初めて手紙を書きます。読みづらかったらごめんなさい(笑)　　母ちゃんにはいままでたくさん迷惑ばっかりかけてごめんね。特に高校を辞めて、東京に行くと言ったときは母ちゃんはものすごく怒り、とても大きなケンカをしてしまいました。あの時は俺も納得ができず心にもないひどいことを言ったことを今でも悔やんでいます。今思えば、母ちゃんは俺のことを心配してくれて反対してくれたんだね。当時はその気持ちがわかりませんでした。本当にごめんなさい。都会での暮らしは大変ですが、友人もでき楽しくやっています。母ちゃんもお体に気を付けて、さとえおばちゃんたちと仲良く楽しく長生きしてください。いつもありがとう。お正月に実家に帰りますのでゆっくりお酒でも飲みながら話しましょう。母ちゃんの大好きなカツオのたたきでもつまみながら(笑)　敬具」</p>
<p>という手紙を突然もらったときの気持ちというか。</p>
<p> </p>
<p> </p>
<h4> Vueバージョン</h4>
<p>で、完成したので一段落したのですが、これまでVueの勉強はチュートリアルでやってきたけど、何も作ったことがなかったのでせっかくだからという興味本位と勉強目的でVueで作ってみました。</p>
<p>おそらく、Vueルーターを使うんだろうなってことはわかっていたのでしらべながら。メソッドなどを使うわけでもないので、サクッと終わるだろうと思っていて進めていたのですが、スマホ画面にするとなぜかNavが消えないんですよね。Navしか触れない状態で。</p>
<p> </p>
<p>この画面↓</p>
<p> </p>
<figure class="figure-image figure-image-fotolife mceNonEditable" title="Nav">
<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/s/shahalam1/20210625/20210625105043.jpg" alt="f:id:shahalam1:20210625105043j:plain" width="964" height="1200" loading="lazy" title="" class="hatena-fotolife" itemprop="image" /></p>
<figcaption class="mceEditable">Nav</figcaption>
</figure>
<p>何を押してもNavが消えない。忌々しい。。。</p>
<p>パソコン画面だとめちゃくちゃスムーズなのに。　テンプレートにもともと組み込まれてるJaVaScriptが悪さしていることに気づきました。おそらく、ページ遷移したときにclassを渡していてそのclassがあるかないかでNavを閉じたり開いたりしていました。ただ、Vueだとページの遷移がないから、classが渡せずNavが開きっぱなしなのかなと仮定して、色々方法がないか調べたのですが見つからず。</p>
<p>業者に問い合わせました。何か解決方法はないのかと。</p>
<p> </p>
<p>返信↓</p>

<blockquote>
<p><span style="color: #454545; font-family: 'MS Gothic'; font-size: small; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">お世話になります、テンプレートパーティー〇〇と申します。</span><br style="font-family: 'MS UI Gothic', Osaka, Arial, sans-serif !important; color: #454545; font-size: small; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" /><span style="color: #454545; font-family: 'MS Gothic'; font-size: small; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">お問い合わせの件ですが、弊社の「〇〇.js」ファイルは</span><br style="font-family: 'MS UI Gothic', Osaka, Arial, sans-serif !important; color: #454545; font-size: small; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" /><span style="color: #454545; font-family: 'MS Gothic'; font-size: small; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">弊社テンプレート用にシステム会社に制作してもらったものなので、</span><br style="font-family: 'MS UI Gothic', Osaka, Arial, sans-serif !important; color: #454545; font-size: small; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" /><span style="color: #454545; font-family: 'MS Gothic'; font-size: small; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">外部プログラムとの連携はできません。ご了承下さい。</span><br style="font-family: 'MS UI Gothic', Osaka, Arial, sans-serif !important; color: #454545; font-size: small; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" /><br style="font-family: 'MS UI Gothic', Osaka, Arial, sans-serif !important; color: #454545; font-size: small; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" /><span style="color: #454545; font-family: 'MS Gothic'; font-size: small; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">宜しくお願い致します。</span></p>
</blockquote>

<p> </p>
<p> </p>
<p> </p>
<p>連携ができないだと。。。そんなはずないだろ。と思いつつも業者がそういうなら仕方ないかと、これ以上の追求は許されました。組み込まれているNav機能が使えないならデザインを変えるしかないなと思い、レイアウトを変更。CSSを書き書き。Navが消えてスマホからも操作できるようになったのでとりあえず完成とした。元々HTMLの方を使うつもりだったので微妙なデザインの崩れは気にせず、Vueを使ってサイトを作るのがゴールだったのでOKです。</p>
<p> </p>
<h4>完成したもの。</h4>
<p> </p>

https://shosen-website2.netlify.app

<p> </p>
<p>まずはHTMLとCSSで書いたもの。テンプレートをもとに作るとデザインがきれいです。</p>
<p>ゼロから作るより大幅に時間も短縮できる。ちゃんと会社っぽいサイトができたと自負しております。</p>
<p> </p>
<p> </p>

https://shosen-vue.netlify.app/#/

<p>Vueで書いたもの。早いー。スマホからは少し使いにくいけど、パソコンからだとデザインは同じなはず。ページ遷移がめちゃくちゃはやい。Vue Routerの使い方のいい勉強になりました。</p>
<p> </p>
<p>没になったやつで1日、HTML版で1日、Vue版で2日。1日4-5時間。</p>
<p>合計4日くらいかかりました。いまはドメイン待ちです。 人のために作るのも良いものですね。 会社が儲かったらお金請求してやろうと思います。</p>
<p> </p>
<p> </p>
<p>おまけ。</p>
<p>5秒英作文もよろしく。</p>

https://5seconds-en.com/

<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>私が生きていることにはどんな意味があるのか。人生のゴールはどこにあるのか。答えのない答えを見つけるために、これからも無駄なことをやり続けながら、生きていこうと思う。</p>