Laravel+Vue+Element-ui+Vux环境搭建


一 安装、laravel

首先,composer下载laravel,我这里下的是最新版:laravel5.6点我进入文档下载

我这里是自己配制的虚拟主机,端口8080,没有配的直接访问你项目位置所在的路径即可。

刚装好laravel显示的是laravel几个字母的页面,我这是自己的页面

安装好laravel


二、 vue的安装 

laravle中默认支持vue环境,直接npm install即可(我这里用的cnpm install) 

vue版本

注:若没有的话(或想自定义版本),需要手动进行修改。


安装

安装完成之后,会发现在resources\asset\js下会多出一个vue的小例子,打开ExampleComponent.vue和app.js你会发现他是一个完整的组件,在app.js中引入了vue,然后注册了一个名为ExampleComponent的组件,ExampleComponent.vue中定义了组件内容及样式。我们直接拿这个例子测试。


自带的vue例子

在resources\view下新建test.blade.php,填写以下内容:

<!doctype html>

<html lang="{{ app()->getLocale() }}">

    <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="csrf-token" content="{{ csrf_token() }}"> <!--注意添加csrf_token验证-->

        <title>Laravel</title>

        <!-- Fonts -->

        <link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">

    </head>

    <body>

        <div id="app">

            <example-component></example-component>

        </div>

        <script src="{{ mix('js/app.js') }}"></script> <!--引入app.js-->

    </body>

</html>

打开routes\web.php,添加路由:

Route::get('/test', function(){ 

    return view('test');

});


页面和路由

然后编译,npm run dev,打开浏览器,访问: 

注:如果出不来,试试 Ctrl+F5 强制刷新,我就是搞了好久,以为没安装成功,强制刷新就出来了


出现这个就算成功了

如果编译时出现报错,建议把node_modules文件夹删了,重新npm install( npm install - -no-bin-link)一下之后在进行编译。

三、安装Element-ui 

使用npm安装,执行命令:npm i element-ui -S 

附element官网:http://element-cn.eleme.io/#/zh-CN/component/installation 


安装element

在app.js中引入element的组件

import ElementUI from 'element-ui';

import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

修改ExampleComponent.vue文件,在文件中加入element组件(随便加一个就行), 可以打开官网找一个组件

添加

然后npm编译,浏览器刷新页面,效果如下:

如果觉得每次都 npm run dev,麻烦的话,可以试一下 npm run watch 实时编译,只要修改了保存之后就自动编译

浏览器效果

四、安装Vux 

安装Vux的组件:

npm install vux --save 

npm install vux-loader --save 

npm install less-loader --save 


安装必要组件

然后我们要把webpack.config.js文件提取出来,到项目根目录

cp node_modules/laravel-mix/setup/webpack.config.js ./ 


复制过来

修改如下: (修改三行,添加一段)

修改后

以下是代码:

/**

* As our first step, we'll pull in the user's webpack.mix.js

* file. Based on what the user requests in that file,

* a generic config object will be constructed for us.

*/

let mix = require('./node_modules/laravel-mix/src/index');  // 需要修改

let ComponentFactory = require('./node_modules/laravel-mix/src/components/ComponentFactory');  // 需要修改

new ComponentFactory().installAll();

require(Mix.paths.mix());

/**

* Just in case the user needs to hook into this point

* in the build process, we'll make an announcement.

*/

Mix.dispatch('init', Mix);

/**

* Now that we know which build tasks are required by the

* user, we can dynamically create a configuration object

* for Webpack. And that's all there is to it. Simple!

*/

let WebpackConfig = require('./node_modules/laravel-mix/src/builder/WebpackConfig');    // 需要修改

module.exports = new WebpackConfig().build();

//添加内容

const vuxLoader = require('vux-loader')

const webpackConfig = module.exports // 原来的 module.exports 代码赋值给变量 webpackConfig

module.exports = vuxLoader.merge(webpackConfig, {

  plugins: ['vux-ui']

})

然后修改修改package.json文件中的config文件路径为根目录的webpack.config.js文件。

修改后

就是把原本webpack.config.js的路径删掉,因为我们移动了位置

代码如下:

{

  "private": true,

  "scripts": {

    "dev": "npm run development",

    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=webpack.config.js",

    "watch": "npm run development -- --watch",

    "watch-poll": "npm run watch -- --watch-poll",

    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=webpack.config.js",

    "prod": "npm run production",

    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=webpack.config.js"

  },

  "devDependencies": {

    "axios": "^0.18",

    "bootstrap": "^4.0.0",

    "jquery": "^3.2",

    "laravel-mix": "^2.0",

    "lodash": "^4.17.4",

    "popper.js": "^1.12",

    "vue": "^2.5.7",

    "vue-router": "^3.0.7"

  },

  "dependencies": {

    "ajv": "^6.10.1",

    "element-ui": "^2.10.1",

    "imagemin": "^5.3.1",

    "img-loader": "^3.0.1",

    "less-loader": "^5.0.0",

    "vux": "^2.9.4",

    "vux-loader": "^1.2.9"

  }

}

修改ExampleComponent.vue,改为Vux的组件:

<template>

  <div>

    <group>

      <cell title="title" value="value"></cell>

    </group>

  </div>

</template>

<script>

import { Group, Cell } from 'vux'

export default {

  components: {

    Group,

    Cell

  }

}

</script>

npm 编译,效果如下:

浏览器效果

五、扩展Vue-router

安装Vue-router组件:cnpm install vue-router --save-dev,

然后在resources\assets\js下新建App.vue和router文件夹,router文件夹下在新建一个index.js。

APP.vue中添加如下代码:

<template>

    <div>

        <router-view></router-view>

    </div>

</template>

<script scoped>

    export default {

        data(){

            return {}

        },

        components: {

        },

        computed: {},

        methods: {

        },

        mounted() {

        },

    }

</script>

index.js中添加:

import Vue from 'vue'

import VueRouter from 'vue-router'

Vue.use(VueRouter);

export default new VueRouter({

    saveScrollPosition: true,

    routes: [

        {

            name:"index",

            path:'/',

            component: resolve =>void(require(['../components/ExampleComponent.vue'], resolve))

        },

    ]

})

接着,修改app.js中的内容 

引入

npm run dev 编译,访问浏览器:

效果

到这里,Vue-router就饿配置好了。 

在想添加更多的路由,可以继续在index.js中添加新的路由,路径指向相应的组件即可。

添加路由

页面,这是原来 ExampleComponent.vue 的代码

添加文件

npm编译,访问浏览器:

编译

OK!!!

注:#/后为vue的路由

当然了,我是借鉴来的,只为记录这个过程,加深印象:https://blog.csdn.net/qq_38125058/article/details/81334010

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容