La maggior杰克逊一些commenti saranno inviati杜兰特拉conferenza我崔partecipanti probabilmente avranno联合国电话号码e非联合国的电脑。鲈鱼非creare联合国'applicazione移动/ controllare rapidamente德拉commenti conferenza吗?
联合国每creare modo联合国'applicazione移动di questo蒂波e di quello creare联合国'applicazione Javascript pagina singola (SPA)。年青一代Una SPA viene eseguita localmente, utilizzare archiviazione语境,年青chiamare Una API HTTP年青一代remota e sfruttare服务每creare联合国'esperienza准nativa工人。
Poiche, applicazione e indipendente dal sito眼光,abbiamo bisogno di eseguire联合国altro服务器网络:
1
美元水疗中心n>ob娱乐下载symfony服务器:停止
1
美元水疗中心n>ob娱乐下载symfony服务器:开始- d——passthru = index . html
Il parametro——passthrucomunica al服务器web di passare le richieste HTTP al文件公共/ index . html(公共/e la cartella web的眼光predefinita / il服务器web)。,pagina e gestita野大白羊'applicazione超前e recupera la pagina di崔eseguire il渲染tramite la cronologia德尔“浏览器”。
Attualmente la SPA非e级di gestire pagine多样化。每implementare多样化pagine abbiamo bisogno di联合国路由器,cosi / Symfony。ob娱乐下载Useremopreact-router。联合国指派的URL来输入e - la corrispondenza反对联合国componente超前da visualizzare。
Installare preact-router:
1
美元水疗中心n>纱添加preact-router
Creare una pagina / la主页(联合国componente超前):
src /页面/ home.js
1 2 3 4 5 6 7
从“超前”进口{h};出口的默认函数回家(){返回(< div > < / div >);};
E联合国altro / la pagina德拉conferenza:
src /页面/ conference.js
1 2 3 4 5 6 7
从“超前”进口{h};出口的默认函数会议(){返回(< div > < / div >会议);};
Sostituire ildivcon il componente“Hello World”路由器:
La struttura戴尔'applicazione超前e ora completa:超前路由器gestisce gli stati德拉pagina,每le conferenze incluso il segnaposto蛞蝓,e di瑞奇阶梯戴尔'applicazione眼光viene utilizzato / il设计德拉SPA。
每rendere dinamica la SPA abbiamo bisogno di recuperare我达尔达蒂被tramite chiamate HTTP。
每esporre Configurare Webpack la variabile di环境/ l 'endpoint戴尔被:
La variabile d 'ambienteAPI_ENDPOINTdovrebbe puntare al服务器del sito鸽子abbiamo l被端点所有'indirizzo relativo/ api。La configureremo correttamente quando eseguiremo纱。
- - - / src /页面/ conference.js水疗中心n>+ + + b / src /页面/ conference.js水疗中心n>48 @@ @@ 1 7 + 1水疗中心n>从“超前”进口{h};<水疗中心n class="hljs-addition">+进口{findComments}“. . / api / api”;水疗中心n>+进口{useState, useEffect}“超前/钩子”;水疗中心n>+水疗中心n>+函数注释({评论}){水疗中心n>+如果(评论! = = null & &评论。长度= = = 0){水疗中心n>+返回< div className = " text-center pt-4”>没有评论< / div >;水疗中心n>+}水疗中心n>+水疗中心n>+如果(!评论){水疗中心n>+返回< div className = " text-center pt-4”>加载…< / div >;水疗中心n>+}水疗中心n>+水疗中心n>+返回(水疗中心n>+ < div className = " pt-4 " >水疗中心n>+{评论。地图(评论= > (水疗中心n>+ < div className =“影子边界rounded-3 p-3 mb-4”>水疗中心n>+ < div className = " comment-img mr-3 " >水疗中心n>+{!评论。photoFilename吗?”(水疗中心n>+ < a href = {ENV_API_ENDPOINT + +评论上传/照片/。photoFilename}目标= "平等" >水疗中心n>+ < img src = {ENV_API_ENDPOINT + +评论上传/照片/。photoFilename} / >水疗中心n>+ < / >水疗中心n>+)}水疗中心n>+ < / div >水疗中心n>+水疗中心n>+ < h5 className = " font-weight-light mt-3 mb-0”> {comment.author} < / h5 >水疗中心n>+ < div className = "评论文本" > {comment.text} < / div >水疗中心n>+ < / div >水疗中心n>+))}水疗中心n>+ < / div >水疗中心n>+);水疗中心n>+}水疗中心n>+水疗中心n>+出口默认函数会议({会议、蛞蝓}){水疗中心n>+ = const会议会议。找到(= >会议会议。蛞蝓= = =蛞蝓);水疗中心n>+ const[注释,setComments] = useState(空);水疗中心n>+水疗中心n>+ useEffect (() = > {水疗中心n>+ findComments(会议)。然后(评论= > setComments(评论));水疗中心n>+},蛞蝓);水疗中心n>出口的默认函数会议(){水疗中心n>回报(<水疗中心n class="hljs-deletion">——< div > < / div >会议水疗中心n>+ < div className = " p-3 " >水疗中心n>+ < h4 >{会议。城市}{conference.year} < / h4 >水疗中心n>+ <评论评论={评论}/ >水疗中心n>+ < / div >水疗中心n>);<水疗中心n class="hljs-deletion">-};水疗中心n>+}水疗中心n>
拉水疗ora deve conoscere l 'URL德拉诺API: Questo avviene tramite La variabile d 'ambienteAPI_ENDPOINT:impostiamola con l 'URL德尔(esecuzione所以nella cartella服务器web API。。):