laravel在与前端相结合这块作的很不错,提供了Laravel Mixphp
Laravel Mix 提供了简洁且可读性高的 API ,用于使用几个常见的 CSS 和 JavaScript 预处理器为应用定义 Webpack 构建步骤。能够经过简单链式调用来定义资源的编译。css
咱们能够本身使用sass,npm,es6语法,压缩,生成随机文件名,经过webpack打包生成 注入到咱们的html中html
简单的一行代码,Laravel Mix 能够执行不少重要的操做。前端
.vue
组件 (经过 vue-loader
)mix.extract()
), 让长期缓存变的容易mix.version()
可查看本人项目源码:github.com/WXiangQian/…vue
具体使用例子react
webpack.mix.js中webpack
mix.js('resources/assets/js/app.js', 'public/js')
.js('resources/assets/js/geetest.js','public/js')
.sass('resources/assets/sass/app.scss', 'public/css')
.sass('resources/assets/sass/index.scss', 'public/css')
.sass('resources/assets/sass/post.scss', 'public/css')
.sass('resources/assets/sass/search.scss', 'public/css')
.version();复制代码
blade.php 中就能够使用laravel
<link rel="stylesheet" href="{{ mix('/css/index.css') }}">复制代码
Laravel 5.5发布,新增长了一个preset的命令。git
php artisan preset复制代码
这行代码主要就是方便咱们切换前端框架,好比react,vue,bootstarp时。若是想使用vue就能够es6
php artisan preset vue复制代码
下面作个返回头部的vue的组件
1.咱们在resources\js\components定义GoTop.vue
<template>
<transition name="fade">
<div class="goTop" @click="goTop" v-if="isShow">
<span class="glyphicon glyphicon-menu-up"></span>
</div>
</transition>
</template>
<script>
export default {
data() {
return {
isShow : false,
}
},
mounted() {
let that = this;
$(window).scroll(function(){
if( $(this).scrollTop() > 50 ){
that.isShow = true;
} else {
that.isShow = false;
}
});
},
methods: {
goTop() {
$('html,body').animate({scrollTop:0});
}
}
}
</script>
<style scoped lang="scss">
.fade-enter-active, .fade-leave-active {
transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}
.goTop {
position: fixed;
right: 36px;
bottom: 50px;
background: #FFF;
width: 50px;
height: 50px;
line-height: 60px;
text-align: center;
border-radius: 2px;
box-shadow: 0 4px 12px 0 rgba(7,17,27,.1);
cursor: pointer;
z-index: 1000;
span {
font-size: 20px;
}
}
</style>
复制代码
2.在resources\js\app.js注册
Vue.component('go-top', require('./components/GoTop.vue'));复制代码
3. 在blade.php 模版中使用
```html
<go-top></go-top>
复制代码
注意: vue作全局组件不易太多,由于打包app.js会被全部页面都会加载到。
若是一个组件里引入另组件可能你的控制台就会报一个错误,[Vue warn]: Failed to mount component: template or render function not defined. (found in root instance)
那若是咱们在laravel中遇到这种问题该怎么解决呢?,就是把全部组件都在app.js注册。