X



Vue vs React vs Angular Part.2

■ このスレッドは過去ログ倉庫に格納されています
0040デフォルトの名無しさん
垢版 |
2019/03/10(日) 20:26:48.77ID:V0UGG6E/
Vue.jsは仕事で使ったけどイマイチな感じがした。
ちょっと入院するからreact native勉強するつもり。
このままサーバサイドエンジニアに追い込まれて終わらんよ
0041デフォルトの名無しさん
垢版 |
2019/03/10(日) 22:13:45.27ID:bIlR+fk4
>>40
どんなところがイマイチ?
0042デフォルトの名無しさん
垢版 |
2019/03/10(日) 22:13:50.36ID:q7odbdCi
>>40
そうだね、pwaは必須になると思う。よりネイティブアプリに近づく流れは避けようがない。
あとスレタイにある様に、現時点でjsフレームワークは3種類に絞られたと言って良いと思う。松茸梅じゃないけど、いい感じに出揃った。腰を据えて松のangular学んで良い時期なのかなと。
0043デフォルトの名無しさん
垢版 |
2019/03/10(日) 22:15:05.06ID:q7odbdCi
ごめん安価間違えた。>>39へのレスでした。
0044デフォルトの名無しさん
垢版 |
2019/03/10(日) 22:19:55.62ID:o7bvUAdf
Angularに詳しい人に質問。

個別のコンポーネントで管理されてる状態を表す変数(例えばユーザーが入力した文字情報や、サーバーから取得したJSONデータ)を
コンポーネント間で共有したい場合、どこで保管するのが適切?

最初は単一のserviceに全ページの状態を示す変数をぶち込んで、単一のservice↔各コンポーネント間でデータのやり取りやデータバインディングやってたんだけど、
ページ数が増えるに連れて変数の管理がし辛くなっていったわ。

あと、データがserviceなんかにあるもんだから、データバインディングする際にも各コンポーネントのhtmlにクソ長い名前付けなきゃならなくてかったるい。

実現したいポイントは、

@コンポーネント間のデータ共有
Aどのデータがどのコンポーネントの状態を示すのかを明確にする
Bデータバインディングのコードの書きやすさ

なんだけど、なんかアイディアない?
0045デフォルトの名無しさん
垢版 |
2019/03/10(日) 22:23:07.40ID:yzd/Af8M
PWAの実行環境としてウェブブラウザは最適なんだろうか。
0046デフォルトの名無しさん
垢版 |
2019/03/10(日) 22:29:16.09ID:Q25DRVQl
前スレでAureliaってのが出てたから試してみたけど
cliでプロジェクト作っても初期状態でnpm startすら碌にできんとか
流石にスレタイの3フレームワークとは同列じゃないなって思った
0047デフォルトの名無しさん
垢版 |
2019/03/10(日) 22:32:21.87ID:6nzJw0Ap
>>45
PWA=実行環境だよ

ブラウザをベースとしてOSがアプリのように
見える仕組みを追加する拡張されたブラウザ機能のこと

素のウェブブラウザが最適ではないからこそ
OSがその機能を追加してる
0048デフォルトの名無しさん
垢版 |
2019/03/10(日) 22:41:57.30ID:q7odbdCi
>>44
すまん横槍なんだけどangularだけの問題じゃないので。
ネイティブアプリでもwebでもRxを使うのがトレンドだと思うんだが、それではダメ?
0049デフォルトの名無しさん
垢版 |
2019/03/10(日) 22:57:26.28ID:o7bvUAdf
>>48
えぇ…駄目って事は無いと思うけど、RxJSで一度取得した情報をページ遷移ごとに再度取得したり、ユーザーが仮で入力した入力情報を一々RxJSで送るって、面倒臭過ぎない?

俺は一度取得したデータや入力したデータはコンポーネント外のどこかに保管して、
データの更新がある時に再利用する、という方法が良いと思うけど。処理的にも通信量的にも。

もちろん、作るものによってデータの扱いは異なるだろうから、俺の考えが絶対に正しいとは思わないけど。
0050デフォルトの名無しさん
垢版 |
2019/03/11(月) 00:23:57.94ID:lyQtF9ny
>>49
それは結構範囲が広い問題だねえ。設計思想にも関わってきそうな。ただデータの再利用部分なんだけど、単に通信量を減らすキャッシュ的なもの?なら簡単だろうけど、なにやら複雑そうだね。
0051デフォルトの名無しさん
垢版 |
2019/03/11(月) 00:26:48.86ID:JM6BoaCV
>>41
描画し終わった後に呼ぶメソッドはアレとか、前だとコレとかとっつきにくい。
まあriotよりはマシだが
0052デフォルトの名無しさん
垢版 |
2019/03/11(月) 00:36:16.62ID:EA8HXttJ
>>44
それがfluxなんじゃないの?
0053デフォルトの名無しさん
垢版 |
2019/03/11(月) 10:44:37.63ID:lyQtF9ny
>>49
ブラウザのデータ永続化も絡んでる?
0054デフォルトの名無しさん
垢版 |
2019/03/12(火) 00:33:48.58ID:jJAw+gN3
>>53
いやそこまでは。精々ユーザーが使っている間、具体的にはブラウザタブ開いている間くらいで考えてる。

JSONにしてsession storageにぶち込もうかとも思ったけど、データバインディングもしたいから
今んとこはserviceで管理するのが一番無難かなぁと。
0056デフォルトの名無しさん
垢版 |
2019/03/12(火) 09:34:20.66ID:AFnQdIOq
>>54
5chじゃ詳しく話せないと思うんだけど少し範囲が広すぎるから、なにが具体例があると分かりやすい。今までの内容から、storeやrxやstorage,indexedDBでも解決に至らない問題って事だよね。

>データバインディングする際にも各コンポーネントのhtmlにクソ長い名前付けなきゃならなくてかったるい。

ここが核心で他は不便ではない、という事なら解決方法は全然違ってくると思うし。
0057デフォルトの名無しさん
垢版 |
2019/03/12(火) 10:16:12.94ID:q9ip16jC
>>51
俺の場合はReactNativeを仕事で使って、同じようなとっつきにくさを感じたから、今はVueやってる。たぶん大差無いんじゃないかな。
0059デフォルトの名無しさん
垢版 |
2019/03/12(火) 12:47:29.02ID:AFnQdIOq
>>58
俺は普通に使ってる。特に問題ないよ。
0060デフォルトの名無しさん
垢版 |
2019/03/12(火) 22:43:17.38ID:yqMuNo3c
Fluxってsetterで値をセットし、getterで値を取得しましょうってことでいいの?

それともsetterの代わりに、メソッドで連想配列に値を入れて
getterは使わず、内部構造の連想配列をそのまま取得ってこと?
0061デフォルトの名無しさん
垢版 |
2019/03/13(水) 00:03:24.50ID:PAp5WAI8
>>56
「解決に至らない問題」というとちょっと違ってて、やりたい事は出来るんだけど、「もう少しシンプルで書きやすく、分かりやすい書き方はないか」と悩んでる。
今やってる事の目的と具体例を出すと、次の様な感じ。
【やりたい事とアプローチ】
コンポーネント間で画面遷移しても画面の状態が保持されるようにしたい。
そこでコンポーネントではなく、サービスにサイトの状態を保持させる。
【具体例】
『component』
・A.component.ts / html
・B.component.ts / html
『service』
・test.service.ts
 public val: any = null; // Aの状態を保持するメンバー変数。
 
1)TestServiceをA、Bそれぞれのコンストラクタで読み込む。
2)Aのcomponent.tsでデータを取得し、serviceのvalに格納。
this.testService.val = result; // 中身は { res : "OK" }

3)Aのcomponent.html上でデータをバインディングで表示。
{{this.testService.val.res}}

4)AからBに画面遷移。
5)component.tsで、取得したデータをオブジェクトの一部に格納。
var result = { res : this.testService.val.res, num : 123 }

結論としては↑のやり方でAで取得したデータをBで参照する事には成功したが、次の問題が出て来た。
・TestServiceにもっと多くの変数があると、どの変数がどのページの状態を示すかが分からなくなる。
・VS Code だとhtml編集時にtsの補完が効かず、htmlのバインディングの構文
{{this.TestService.val.res}}
を書くのが面倒。

何かズラズラと書き上げてて、だんだん設計がよろしく無い気がしてきたわ。いっぺん設計を考え直してみるわ。
0062デフォルトの名無しさん
垢版 |
2019/03/13(水) 01:32:34.62ID:N5s6avwa
>>61
ちょっと俺もangular勉強中だから近日中に答えるわ。
ただ気になるのが4)のA>Bに遷移した後、リロードが発生したら表示できなくなる気がするんだけど。。urlが同じならAに戻るだけだから問題ないと言えば無い。のかな?
または、A>Bへの遷移後Aは破棄されず再び更新が発生した場合サービス側で注意深く処理しないとせっかくのBのバインドが外れてしまう。
ごめん実装と例は違うんだろうけど、パッと見て気になったところ。
0063デフォルトの名無しさん
垢版 |
2019/03/13(水) 06:45:39.95ID:82TbnNci
それ
リロードが発生するとデータが消えるのは論外なのでリロードしても大丈夫なようにしないといけない
0064デフォルトの名無しさん
垢版 |
2019/03/13(水) 07:00:36.64ID:YzEG8kXL
名前が長くなるのはいやがらない方がいいと思うけどな。シンプルな名前にすると背後に潜む仕組みがわかりにくくなって逆に不安になったりしない?
0065デフォルトの名無しさん
垢版 |
2019/03/13(水) 07:03:11.66ID:YzEG8kXL
{{this.TestService.val.res}}

こう書いてあると、他の人が見たときにわかりやすくてよい名前だと思う。
0067デフォルトの名無しさん
垢版 |
2019/03/13(水) 09:40:05.85ID:N5s6avwa
現段階での改善案なんだけど、
1:Aのロード部分はサービスへ。
2:AB共にサービスからrx経由で取得。
が基本だと思う。要はコンポーネント内で直接ロードしない。この修正だけで随分見通し良くなると思うよ。
あとはサービス側でキャッシュなり永続化なりお好きな様に。
0068デフォルトの名無しさん
垢版 |
2019/03/13(水) 11:07:16.09ID:xsp0OITE
頑張らなくっちゃ〜 頑張らなくっちゃ〜
うんちもプリップリッ おしっこもジャージャー
頑張らなくっちゃ〜 頑張らなくっちゃ〜 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
0069デフォルトの名無しさん
垢版 |
2019/03/13(水) 11:20:41.84ID:82TbnNci
・サービスの根幹に関わる部分はflux概念で管理
・その部分はどのページでリロードしても破綻しないように管理する
・見た目とかリロードで変更されても問題ないstateはそれぞれのコンポーネントで管理


こんな感じかね
0070デフォルトの名無しさん
垢版 |
2019/03/13(水) 12:36:13.64ID:M+m6pFpm
リロードしてもステート変わらないの?
何のためにリロードするんだろうな。
そんな糞サイト二度と行かないわ
0071デフォルトの名無しさん
垢版 |
2019/03/13(水) 12:56:53.92ID:sDP8Zfpo
何のためにリロードするのかってユーザーが勝手にリロードするからだろ
糞サイトだろうが優良サイトだろうがリロードするやつはリロードする
そんなことすら理解できないバカを自己紹介すんな
0072デフォルトの名無しさん
垢版 |
2019/03/13(水) 13:27:25.76ID:M+m6pFpm
何を期待してリロードするのかということなんだが…
リロードしてもリロード前とステートまったく変わらないの?
そんな糞サイト二度と行かないわ
0073デフォルトの名無しさん
垢版 |
2019/03/13(水) 14:00:09.36ID:sDP8Zfpo
>>72
お前がバカだから理解できないのはわかった
0074デフォルトの名無しさん
垢版 |
2019/03/13(水) 14:51:42.99ID:C11CZt6j
馬鹿と馬鹿が言い争っていてワロタ
jQueryおじさんの俺が説明してやろう

リロード自体が要求になってるんじゃないんだよ。
重要なのはURLに対応した表示になるということだ

例えば、誰かにこのページ見てくださいってLINEかなにかで送った時、
相手もそれを同じ内容で見れるということが重要なんだよ。
それが出来てれば自然とリロードにも対応する

それから進むと戻るな。ブラウザで進むや戻るを押したとき
URLが変わるが、内容もそれに対応して変わらないといけない
これもURLい対応した表示ができるならば自然と実装できてることになる

リロードした時に表示内容が変わる変わらないは関係ない
データが更新されりゃそりゃ変わるだろ。それは問題ではなく
URLに対応して表示がされてるということが重要なんだよ。
0075デフォルトの名無しさん
垢版 |
2019/03/13(水) 14:55:47.58ID:N5s6avwa
>>72
逆だよ逆。リロードしてもステートは基本変わっちゃダメなんだが。。別の何かと勘違いしてない?
0076デフォルトの名無しさん
垢版 |
2019/03/13(水) 15:05:53.98ID:C11CZt6j
URLに乗っけるべき情報(ステート)と
そうでない情報を明確に区別して考えてるかい?
それぐらいSPAの基本になってるはずだろう?

なんかそういう前提基礎知識無いまま
フレームワーク使ってる!SPAが得意!俺SPAやってる!
みたいな馬鹿多そうだよね
0077デフォルトの名無しさん
垢版 |
2019/03/13(水) 15:08:42.76ID:sDP8Zfpo
>>74
お前は巣に戻れ
0078デフォルトの名無しさん
垢版 |
2019/03/13(水) 15:16:56.45ID:N5s6avwa
そうだな、皆さんスルーの方向で。
0081デフォルトの名無しさん
垢版 |
2019/03/13(水) 16:02:58.96ID:096TGv3x
だからlocalStrage使う方法調べりゃいいだけしゃね?
どのフレームワークの話かはしらんけど
0082デフォルトの名無しさん
垢版 |
2019/03/13(水) 16:56:50.71ID:N5s6avwa
今angular入れて色々弄ってるんだけど、思ってたより分かりやすかった。これは食わず嫌いだったかも知れん。lonic2も良い。
0083デフォルトの名無しさん
垢版 |
2019/03/13(水) 22:36:26.58ID:XQdSKsp+
今入院中でこの暇な時間使ってmacbookでreact nativeの開発環境構築したんだが、再起動しようとしたらmacOsの更新で引っかかってtimemachineで今朝に戻ってまたやり直しだよ。
Iphoneのデザリングは思わぬところで使えないな。
今日だけでパケット使用量が27.5GB超えたわw
0085デフォルトの名無しさん
垢版 |
2019/03/14(木) 01:02:58.29ID:ru/Uognt
>>67
あぁそうか。コンポーネント基準で状態を保持するんじゃなく、RxJSを基準に取得した情報の管理をすりゃいいのか。なんとなく分かったわ。

あと、サイトのリロードについては特に書いてなかったけど、リロード時にはクエリにレコードのidでも埋め込んで、
ABそれぞれでTestService呼べばいいか。

>>65
説明が悪かったわ。変数名が長いのが「めんどくさい」の根本原因じゃなく、
VS Codeでコンポーネントのhtmlに変数を書く時に補完が掛からないからいちいち変数部分だけコンポーネントで書いて、
それをhtmlにコピペするって作業してるけど、その作業がめんどくさいんだよ。

htmlにクソ長い変数名貼り付ける際にコピー範囲間違えて、貼り付けた内容の間違いに気付かなくて、
serveして動かねー!なんて事も結構あったから、何か予防出来る良い方法(出来れば補完を効かせる方法)無いかなぁと。
0087デフォルトの名無しさん
垢版 |
2019/03/14(木) 08:12:54.12ID:OwP0/eKx
きちんとIE11でも動くように確認してる?
0089デフォルトの名無しさん
垢版 |
2019/03/14(木) 09:48:52.88ID:cYcIRmqP
>>85
ロードはそれで良いと思う。

あと補完部分だけど、俺はwebstorm使ってるからすまんけどvscodeだとどうなるのか分からない。でもそれ補完できるのが普通だから設定でどうにか出来そうな気がするんだけどね。。
0090デフォルトの名無しさん
垢版 |
2019/03/14(木) 09:49:55.66ID:cYcIRmqP
>>85
まだangular初心者なんで勘違いしてるかも知れんけど、webstormだと補完効いてる様に見える。少なくともコンポーネントのpublicな変数がhtmlで補完効かないという事は無い。注入したサービス内のプロパティも補完効く。

一度試してみたら?30日のトライアルあるし。インスコしてプロジェクト読み込むだけですぐ確認出来るよ。少し高いが。。サブスクだし。
0091デフォルトの名無しさん
垢版 |
2019/03/14(木) 09:58:02.68ID:cYcIRmqP
>>86
俺もreact vue派だよ。ただ聞いてた様なangularの急な学習曲線は無いと、現段階では思う。まだ全体を比較できるほど知ってる訳じゃないけど。
0092デフォルトの名無しさん
垢版 |
2019/03/14(木) 17:30:00.98ID:cYcIRmqP
ふと思ったんだけど、vscodeにangularのextension入れて無いから補完効かないとかじゃ、、違ったらすまんね。
0094デフォルトの名無しさん
垢版 |
2019/03/15(金) 10:31:41.22ID:oX4qYXDT
>>93
Nuxtでssrにexpress使用する場合って事?仕事で使ってるよ。
create-nuxt-app で pwa, express, vuetify 指定。
色々世話焼いてくれるのは良いけどカスタムしようとすると少しトリッキー。ルータ周りとか。元が緩いから常に複数のやり方がある。たまにコレで正しいの不安になる。不満点としてはそんなもん。
0095デフォルトの名無しさん
垢版 |
2019/03/15(金) 11:49:10.14ID:grzsyouu
職場のとなりのおっさんが秀丸でAIのフロント作ってた
設計もデザインもコーディングも全部一人で完結させてた
Reactも丸暗記してるみたいで秀丸で手打ち

手練れの人ならvscodeなんて要らない
0098デフォルトの名無しさん
垢版 |
2019/03/15(金) 12:36:40.24ID:oX4qYXDT
>>95
凄え。。俺には到底真似できん。
0100デフォルトの名無しさん
垢版 |
2019/03/15(金) 14:43:00.90ID:xg5ImndD
一方俺はVS Codeでバグが見つかり一時間考えてもわからず人に聞いたらただの変数名の間違いだった
0101デフォルトの名無しさん
垢版 |
2019/03/15(金) 15:53:30.81ID:RoIPOHxI
Reactで長いスペルって
componentDidMountとかライフサイクルメソッドくらいじゃない?

あとパッケージ名とか
0102デフォルトの名無しさん
垢版 |
2019/03/15(金) 18:30:15.60ID:Ub8vdKeJ
>>95
残念ながら、それでは比較になっていない。

同等の手練の人でvscodeを使う人と秀丸を使う人の
両方を用意して比較して初めて意味がある。
0103デフォルトの名無しさん
垢版 |
2019/03/15(金) 19:23:38.69ID:4uXCwYPV
そういうの文系ではapple to appleの比較って言うけど理系ではカッコよくなんて言うんだっけ?
0104デフォルトの名無しさん
垢版 |
2019/03/15(金) 21:07:09.57ID:2KXTO6ja
まあ実際のところメソッドの綴り思い出すくらいのことで生産性が上がったり下がったりはせんわ。
0106デフォルトの名無しさん
垢版 |
2019/03/15(金) 22:57:48.26ID:Q5qTdV/M
vscode嫌ってるとかでなく、よく知らない・導入面倒そう・そのうち考える くらいの感覚で
現状維持(秀丸継続)してるだけだと思うよ
0108デフォルトの名無しさん
垢版 |
2019/03/15(金) 23:19:53.06ID:oX4qYXDT
秀丸でもホットリロード効くのかね。試すつもりもないが。
0113デフォルトの名無しさん
垢版 |
2019/03/18(月) 09:08:50.14ID:OsNQoPQN
ワッチョイなくなったからとれか分からんくなったけどReactマスターのオッペケはどんな環境でコーディングとかデザインとかやってるの?
0114デフォルトの名無しさん
垢版 |
2019/03/18(月) 20:14:26.90ID:yGXBPngH
>>17
マジレスすると大規模案件は多い

ただし、学習コストが尋常じゃない
そりゃ半年に1回大規模なアプデ入るような言語は学ぶのキツイですわ

あと、これ選んでる会社は開発が投げ捨てグーグルというのを忘れてる
グーグルだから信用できるってどんな思考回路でそうなるのか
0116デフォルトの名無しさん
垢版 |
2019/03/18(月) 22:42:22.12ID:ZOriKmN7
>>113
VScode
cloud9
Photoshop
たまにイラレ
0120デフォルトの名無しさん
垢版 |
2019/03/19(火) 10:29:57.40ID:SaRhAIF3
>>114
まあangularは過去やらかしてるから不満なのはわかるよ。でもどうせ5年もすればガラッと様変わりするのが常だし、しょうがない。pwaが本当にアプリの大部分を置き換え得るのか誰にも分からない。
0121デフォルトの名無しさん
垢版 |
2019/03/19(火) 12:35:42.07ID:n03O5Nop
>>119
もうオワコンでしょー
中身は最低限の機能でバックの方で更新一括すればいいし
何度もアプデはユーザーにも開発にも負担がかかる
0122デフォルトの名無しさん
垢版 |
2019/03/19(火) 19:16:33.24ID:48OEK8cP
現行クロスビルドするためにAndroidStudio入れなきゃいかんのがめんどいよね容量食うし
SDKだかだけ入れても結局足りんし
ちゃんとクロスビルド用で必要十分で最小限の切出ししてくれんもんかね
0124デフォルトの名無しさん
垢版 |
2019/03/20(水) 09:09:20.93ID:qH5NavgF
ん?androidのネイティブアプリでandroid studio以外の選択肢があるのか?ゲームなら分かるが。
0131デフォルトの名無しさん
垢版 |
2019/03/21(木) 02:04:21.51ID:2UUDJxzq
Evan「今日からSPAとして働いてもらうからな」
JS「えっ?おじさん誰?」
Evan「Vue!」
JS「え?ちょっと縛らないで!なにコレっ、 v-◯◯属性ってなんなの!気持ち悪いっ、私のDOMどうなってるのぉ!」
Evan「ディレクティブだよ。リアクティブにDOMを書き換えるんだ。Reactの◯SXよりも気持ちいいだろう、俺のテンプレート構文」
JS「気持ちよくなんか、んっ」
Evan「はしたないデータフローにはご褒美のV◯exだ」
JS「いやああ… (ごめんね…React…)」
Evan「うっ、見てごらん、これがコンポーネント作りだよっ!(ヴューッ)」
0134デフォルトの名無しさん
垢版 |
2019/03/21(木) 13:08:33.79ID:5dV11zdl
フレームワークは3年くらいでオワコンになるし、何かいきなり新しいのがでてきて急にオワコンになることもある
0135デフォルトの名無しさん
垢版 |
2019/03/21(木) 15:04:52.01ID:SWMlpuY2
Angularは2系にイキナリ切り替わって呆然
以来React派に転向
メリケンではVueよりReactが優勢
0136デフォルトの名無しさん
垢版 |
2019/03/22(金) 21:47:59.16ID:IYk7fwKO
ほんと世の中ガチでフロントエンジニアリングできるエンジニアっていないんだな
エンジニアリクルートサービス利用してポートフォリオみてるけどどいつもこいつもウンコレベルなのに、できます!アピールだけすごい
作ったアプリみたら酷いな
0137デフォルトの名無しさん
垢版 |
2019/03/22(金) 22:00:16.69ID:fHZvfEvf
AngularJSの時代なんてjQueryしか使ってなかったから過去の仕様がバッサリ切り捨てられたとかどうでもいい
大事なのは現行の仕様が実用的にどうかというところ
0139デフォルトの名無しさん
垢版 |
2019/03/22(金) 22:59:48.83ID:IYk7fwKO
>>138
全部みるけど
特にUI/UXがクソすぎる
ど素人通り越して人間以下の能力しか感じられない

ちなみにリクルートサービス担当者に聞いたら、できる人はほとんどいませんだって
なのに単価クソ高え
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況