【发布时间】:2019-02-19 14:47:27
【问题描述】:
我想到了以下 MPA - SPA 混合,我基本上将每个页面视为一个 SPA,但仍然像习惯性一样重新加载页面以从一个页面过渡到另一个页面(index.blade.php 到 posts.blade.php) MPA。此方法使用 laravel 路由、会话和身份验证的强大功能来渲染包含单个 vue.js 组件的刀片模板。
想象一下你在主页,你会看到这样的东西:
@extends('layouts.master')
@section('content')
<body id="vue_root">
<page-index data={{ json encoded data from backend }}></page-index>
</body>
@endsection
如你所见,我将一个 json 对象作为一个 prop 传递给 vue 组件,这个 prop 包含 vue 渲染所需的所有数据。
当使用这种将每个页面视为一个组件的方法时,我可以使用 vue.js 单个文件将所有标记、逻辑(vue 组件方法和样式)包含在一个文件中,这将使我更容易测试和调试。
我有一个 vue.js 根实例,我在其中注册了所有页面组件。
但是,由于我使用 laravel 控制器作为后端来检索所有数据以及刀片视图,因此我还必须创建 vue.js 组件和 laravel 刀片模板,这对我来说听起来像是双重工作。
您如何看待这种模式?好吗?任何改进这一点的想法,我是否应该使用 inline-templates 代替(这样我就不需要制作相应的刀片模板和 vue.js 页面组件。
【问题讨论】:
标签: javascript php laravel vue.js