Frontend Stack
Organize the code into small components (files)
// composer/what.blade.php
// extend composer layout
@extends('layouts.dashboard.composer')
// adding styles
@section('styles')
<link href="composer/what.css" rel="stylesheet">
@stop
// html content
@section('content')
<div class="composer__what">
.......
</div>
@stop
// adding js logic
@section('scripts')
<script src="composer/what.js"></script>
@stop
Do the same but with a frontend framework
Server-side routing and page-shell
// laravel route
Route::get('push/{id}', ['as' => 'app.push', 'uses' => 'ApplicationController@push']);
// blade view (page shell)
@extends('layouts.app_dashboard')
@section('content')
<script>
var pageData = {!! json_encode($data) !!}
</script>
<div id="composer" data-app-id="{{$data['app']['_id']}}">
</div>
@stop
//js code to load composer code
const composer = document.getElementById("composer");
if (typeof composer !== "undefined" && composer !== null) {
const Composer = Loadable({
loader: () =>
import(/* webpackChunkName: "/js/composer" */ "./Pages/Composer/index.jsx"),
loading: ComposerPlaceHolder
});
render(<Composer />, composer);
}Text
React (UI Components)
JSS (Styling solution)
Redux (State management)
React Router (UI Routing)
React loadable (Lazy load/code splitting)
Material (UI Components)
Formik/Yup (UI Validation)
Axios (Http Client)
Jest (Unit testing)
Cypress (E2E testing)
Webpack/npm scripts (Build system)
and more on demand