laravel5.4+vue+element-ui配置及简单使用

发布时间:2018-12-29 15:31:06编辑:文明阅读(1446)

    1、下载laravel框架,这里我们使用composer(也可以直接搜索laravel学院,下载最新的一键安装包,这里就不放链接了,自行百度)(laravel从5.3版本开始使用vue.js作为默认的js前端框架了)

    (注:这里说一下,其实composer不能称为一个包管理器,虽然它涉及到了"packages" 和 "libraries"但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。再有就是,对一个相对的新手来说,composer也是方便实用的,建议小伙伴们去下载一个)

    附一个简单的安装laravel的命令:composer create-project laravel/laravel  你的项目名

    2、修改package.json并下载相应依赖库

     下面是package.json的源码

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    }
    
    将红色部分修改为
    "devDependencies": {
     "axios": "^0.15.3",
     "bootstrap-sass": "^3.3.7",
     "jquery": "^3.1.1",
     "laravel-mix": "^0.8.3",
     "cross-env": "^3.2.3",
     "lodash": "^4.17.4",
     "vue": "^2.1.10",
     "element-ui": "^1.2.8",
     "vue-loader": "^11.3.4",
     "vue-router": "^2.4.0"
    }

    (这里细心的小伙伴们可能已经看到我们的代码里有一行"laravel-mix",这是一个蛮好用的前端编译资源,有兴趣的小伙伴可以了解一下,附送链接:

    http://laravelacademy.org/post/6798.html) 

    打开终端(windows下的命令窗口),cd进到项目目录下,运行:npm install(windows系统下开发的小伙伴要在运行这个命令时带上 --no-bin-links

    这里有了解或用过npm的小伙伴应该知道,如果安装了npm的国内镜像的话,我们也可以直接使用cnpm(墙内下载要比墙外下载快一些,不过网上好多大神说用cnpm有可能会少一些有用的扩展依赖库,会对项目造成影响,不过目前为止我还没有碰到过,当然,这里我们还是直接使用npm来安装了)

     

    ——————————————————————————————————————————更新分割线——————————————————————————————————————————
    更:上面修改package.json的时候忘了说一点,那些有关各依赖库的版本请自行根据其当前版本进行修改,要不然有些东西版本不同也会有坑的,就比如element-ui,
    不同版本自带的方法是不同的,有些新版本的自带方法旧版本里是没有的
    ——————————————————————————————————————————更新分割线——————————————————————————————————————————

     

     通过终端我们可以看到着实下载了不少东西,下载完成后你会看到项目目录下多了一个node_modules的目录。

    到了这一步,我们的项目其实已经可以直接运行了:npm run dev(查看package.json会发现除了dev我们还可以run watch、run hot等,这里不做详解啦)

    当然,打开浏览器访问我们还看不出哪里有变化,还是laravel自带的welcome界面(因为还没有正式使用vue和element-ui呀)

    3、打开reresources/assets/js/components目录,我们会看到lavavel自带的一个.vue的example文件

    <template>
        <div>
            <div>
                <div class="col-md-8 col-md-offset-2">
                    <div class="panel panel-default">
                        <div>Example Component</div>
    
                        <div>
                           
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </template>
    
    <script>
        export default {
            mounted() {
                console.log('Component mounted.')
            }
        }
    </script>
    为了测试,这里我们修改红色部分为:
    require('./bootstrap');
    
    window.Vue = require('vue');
    
    /**
     * Next, we will create a fresh Vue application instance and attach it to
     * the page. Then, you may begin adding components to this application
     * or customize the JavaScript scaffolding to fit your unique needs.
     */
    
    
    
    const app = new Vue({
        el: '#app'
    });
    红色部分可以看出,laravel已经帮我们加载好了这个example组件,下一步,我们只需要在试图文件中引入这个app.js文件就好啦
    <!DOCTYPE html>
    <html lang="{{ config('app.locale') }}">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="X-CSRF-TOKEN" content="{{csrf_token()}}">
        <title>123</title>
    </head>
    <body>
    <div id="app">
        
    
    </div>
    
    
    
    </body>
    </html>
    相信来看这个教程的小伙伴都应该已经学过vue并至少会一些简单的编程了,这里红色部分就是引入app.js并加载example组件,具体就不再啰嗦了
    刷新浏览器就可以看到

    OK,我们已经成功加载了example组件了
    (注:这里我们是通过配置的本地虚拟主机名访问的,如果是没有配置直接通过localhost访问的小伙伴可能会报app.js找不到的错误,这种情况下只需要修改
    )

     

    有一行<meta name="X-CSRF-TOKEN" content="{{csrf_token()}}">吧
    OK,让我们打开resources/asset/js/bootstrap.js找到30多行,大概是这个样子

    相信有些小伙伴已经看懂了吧,我们只要把32行里name的值改为X-CSRF-TOKEN就可以啦,再次刷新,OK,已经没有报错啦



    5、使用element-ui组件
    我们已经在第2步下载了element-ui的相关库,接下来只需要在vue中使用它就可以啦,打开我们的resources/assets/js/app.js
    修改为
    /**
     * First we will load all of this project's JavaScript dependencies which
     * includes Vue and other libraries. It is a great starting point when
     * building robust, powerful web applications using Vue and Laravel.
     */
    require('./bootstrap');
    
    window.Vue = require('vue');
    //
    // /**
    //  * Next, we will create a fresh Vue application instance and attach it to
    //  * the page. Then, you may begin adding components to this application
    //  * or customize the JavaScript scaffolding to fit your unique needs.
    //  */
    //
    Vue.component('example', require('./components/Example.vue'));
    
    
    //引入element-ui所需的css样式资源文件
    
    ElementUI装入我们的Vue
    const app = new Vue({
        el: '#app'
    });
    
    接下来让我们打开element的官方组件库(链接:)

     

    找到基础组件,随意copy一些组件的代码放入Example.vue中,刷新页面

    OK我们已经成功的引入并使用element-ui的组件啦。

    最后、

    到这里我们也已经算是“神功初成”了,小伙伴们可以使用laravel5.4+vue+element-ui来进行自己的开发了,当然,这里其实还有一些坑存在的。

    不知道小伙伴有没有发现或者说有没有碰到,博主这里不知道是因为配置问题还是版本问题,在运行时遇到一些不知道原因的小问题。首先就是npm run dev。博主这里在运行之后,再去修改一些代码,浏览器竟然刷新不出来我的修改,只能再次run dev刷新才有效果(没有报错,也找不到原因,有同样问题的小伙伴可以先使用run watch 不过这玩意儿实在是太占资源了,我的PHPStorm都因此变卡了)。。。。。再有就是 npm run hot 热加载功能(热加载就是指修改代码并保存后,浏览器自动刷新),博主这里热加载因为虚拟主机配置的是本地84端口,但是终端显示热加载项目还是运行在自动分配的8080端口,导致了跨域的问题,热加载报错。。。。后来尝试主动配置为8080端口,在终端发现下面这种情况

     

    项目运行变成了8081端口,还是出现跨域错误。在网上搜了好多,最后还是没有解决,							
  • 游客721001
    555
  • 游客721001 回复: 游客721001
    bbb