In einer Spring Boot + Thymeleaf-Umgebung können mehrere Personen das Frontend entwickeln. Es ist ein Memo, dass, wenn die gleiche Struktur und das gleiche Design oft auftreten, es ein solches Problem gab und es gelöst wurde. (Selbst wenn jemand übernimmt, kann es eine Ameise sein, es zu einem gemeinsamen Teil zu machen)
Spring Boot: 1.3.2 RELEASE Thymeleaf: 2.14 RELEASE
Es ist eine der Template-Engines und wird für die Verwendung in einer Java-Umgebung empfohlen. Was mir daran gefällt, ist, dass Sie die eigene Syntax von Thymeleaf in HTML einbetten können. Schreiben Sie zuerst natives HTML, bestimmen Sie grob die Struktur und das Design und brechen Sie den Code nicht zu stark Sie können es vervollständigen. (Ich habe noch nie eine andere Template-Engine verwendet ... vielleicht ist es die Welt) Es wird gesagt, dass Sie verschiedene Dinge tun können (obwohl es rau ist), indem Sie es mit Spring Boot kombinieren. Offizielle Seite: http://www.thymeleaf.org/
Eigentlich war es etwas weniger als zwei Jahre her, und ich bin kürzlich zum Frontend zurückgekehrt und habe mich daran erinnert, also habe ich es geschrieben. Zu dieser Zeit, mitten in der Entwicklung, hatte ich die folgenden Probleme.
Abschließend werde ich es so machen (ich werde die Syntax von Thymeleaf weglassen).
Anrufer
<!-- form.Text in HTML-Rufen Sie einen Teil namens form auf.
Als Argument templateId, label,Pass erforderlich.
templateId"accountName"Übergeben Sie die Zeichenfolge.
label ist msg in der Nachrichtenressource.account.Übergeben Sie die im Namen definierte Zeichenfolge.
Pass false für erforderlich-->
<div th:replace="form :: text-form(
templateId = 'accountName',
label = #{msg.account.name},
required = false)">
</div>
Gemeinsame Teile
<!-- text-Es ist ein Teil namens Form.
Als Argument templateId, label,Empfangen erforderlich.-->
<div th:fragment="text-form(templateId, label, required)">
<label th:for="${templateId}" th:text="${label}"></label>
<div>
<input type="text" th:id="${templateId}" th:name="${templateId}" th:field="*{__${templateId}__}"
th:required="${required}? required"/>
</div>
</div>
Tatsächlich gibt es eine CSS-Klassenanwendung und einen Javascript-Aufruf, was es kompliziert macht, aber wenn Sie gemeinsame Teile definieren, Sie können eine Struktur mit einem einheitlichen Design effizient erstellen, indem Sie einfach die erforderlichen Parameter an die erforderlichen Teile übergeben und diese aufrufen.
Wir konnten das Design vereinheitlichen, Bildschirmvorlagen effizient entwickeln und wie geplant freigeben. Im Verlauf der Entwicklung traten jedoch die folgenden Probleme auf.
Recommended Posts