// MyTemplate.vue
<template>
<div> <!-- keep this single "parent" div in your template -->
<!-- your Blade layout here -->
</div>
</template>
<script>
export default {
props: [ 'data' ]
}
</script>
1.将Vue模板作为全局组件添加到app.js中:
// app.js
import Vue from 'vue';
window.Vue = Vue;
Vue.component('my-template', require('./MyTemplate.vue').default);
const app = new Vue({
el: '#app'
});
3条答案
按热度按时间gudnpqoy1#
1.将基本结构重建为Vue模板:
1.将Vue模板作为全局组件添加到app.js中:
1.在窥视片模板中使用此新Vue模板,如下所示:
一旦进入Vue模板,您将无法返回到Laravel方法(例如
@auth
),也无法在没有 AJAX 请求的情况下获取其他数据,因此请确保预先将所有需要的数据打包到Vue模板中。您发送的所有数据将在Vue模板中以您分配给它的 prop 名称作为前缀,在本例中为data
。注意,一旦你熟悉了Vue,你可能会开始分离传递给模板的单个数据值,为此,你需要在第1步的
props
数组中指定额外的属性,例如:然后分别传递它们的值
1.将刀片指令转换为Vue指令:
环路(例如
@foreach
)到v-for
:变成
控制结构(例如
@if ($something !== $somethingElse) ... @endif
)至v-if
:nzkunb0c2#
总的来说,正如评论中提到的,将应用从刀片转换到VueJS组件没有捷径可走。无论如何,如果您考虑迁移到VueJS,我建议您进行完整的迁移,而不是部分使用Vue组件。
迁移到VueJS的主要思想是将您在刀片模板中执行的所有逻辑(如foreach、if等)转移到Vue组件,并使用 AJAX 请求获取所有数据(例如,借助
axios
或natively)。在这种情况下,您的控制器应该返回页面呈现所需的所有数据,而Vue组件将处理其余的呈现逻辑。
此外,使用
vue-router
处理舍入并使应用程序表现为SPA也是一个不错的选择。在这种情况下,您应该在应用程序中创建一个通配符路由,该路由将仅返回一个刀片模板。在此模板中,您应该插入将启动VueJS的根标记。其余标记将位于VueJS端。5anewei63#
如果您计划迁移整个应用程序,则从身份验证开始。
本教程在过去帮助我入门。之后将您的代码拆分为组件。
如果你想先学习基础知识,那么你可以学习这个教程,我发现这个很有用。https://www.youtube.com/playlist?list=PL4cUxeGkcC9gQcYgjhBoeQH7wiAyZNrYa
希望这有帮助!