zoukankan      html  css  js  c++  java
  • Laravel 6.X + Vue.js 2.X + Element UI +vue-router 配置

    Laravel 版本:6.X
    Vue 版本:2.X


    Laravel配置:

    Laravel使用的是Laragon安装

    laragon 2020-02-25 132242

    选择Laravel;接下来弹出框,输入项目名,laravel会自动创建一个数据库,数据库名与项目名相同,

    laravel 2020-02-25 132710

    安装开始

    laravel 2020-02-25 132831
    安装完毕

    laravel 2020-02-25 133614

    过程中会弹出命令提示框,选择OK就行,忘记选择的话需要自己配置host

    laravel 2020-02-25 133814
    还要注意 弹出命令提示框如果没有选,后续可能需要自己生成一个conf【直接去目录copy一个其他的,文件名和文件内部的内容改成lavue.test的,然后reload重启Apache】,我这里已经生成了,

    laravel 2020-02-25 134039
    现在就可以从浏览器打开lavue.test,查看了

    laravel 2020-02-25 134446

    Vue 配置


    自从5.7版本之后 vue bootstrap 以及auth都需要额外安装包

    打开Terminal命令行管理工具;

    输入:

      1 composer require laravel/ui


    vue 2020-02-25 145920

    安装完毕

    vue 2020-02-25 150403

    键入

      1 php artisan ui –help


    可以查看帮助

    批注 2020-02-25 150635


    //支持类型有 bootstrap vue react
    
    php artisan ui vue
    
    php artisan ui bootstrap
    
    php artisan ui react
    
    //如果要一次支持auth 可以附加 --auth
    
    php artisan ui vue --auth

    批注 2020-02-25 151020

    然后执行 npm install 使用node.js安装相关依赖

    可以同时使用npm run dev 配置

    也可以使用 npm run watch-poll 这样在vue组件发生改变的时候,会自动generate
    键入:

      1 npm install & npm run dev
      2 
      3  4 
      5  npm install & npm run watch-poll
      6 


    安装完毕:

    (1) 在resources/js路径下自动新建了一个components文件夹,以及一个ExampleComponent.vue文件

    (2) 在views文件夹下自动现金auth文件夹 passwords子文件夹 以及layouts文件夹

    (3) app/Http/Controllers/Auth文件夹内新增几个Controller

    (4) 打开主页http://lavue.test/ 出现register和login链接

    还有一些文件发生了改变

    详见:https://www.techiediaries.com/laravel-authentication-tutorial/

    翻译文章:https://www.cnblogs.com/dzkjz/p/12362101.html 【没有翻译完成】

    批注 2020-02-25 152911

    ExampleComponent.vue文件时自动生成的示例,

    打开resources/js/app.js,可以发现在里面引入了示例组件

    批注 2020-02-25 201503

    为了便于体会效果,我们新建一个view及route:

    【view部分:】在 resources 文件夹中的 view 文件夹 创建 index.blade.php

    批注 2020-02-25 201739

    键入:

      1 <!doctype html>
      2 <html lang="{{ app()->getlocale()}}">
      3  <head>
      4      <meta charset="UTF-8">
      5      <meta name="viewport"
      6            content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
      7      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      8      {{--  防止CSRF攻击 可以赋值给ajax header 如果是form中直接使用@csrf即可 --}}
      9      <meta name="csrf-token" content="{{ csrf_token() }}">
     10      <link rel="stylesheet" href="{{ mix('css/app.css') }}">
     11      <title>Document</title>
     12  </head>
     13  <body>
     14  {{--id 为 app与 app.js中const app = new Vue({el: '#app',<<=【这个一致】});--}}
     15 
     16 <div id="app">
     17      {{--   app.js中 组件名为example-component Vue.component('example-component', require('./components/ExampleComponent.vue').default);--}}
     18      <example-component></example-component>
     19  </div>
     20  {{--必须放置在下方--}}
     21  <script src="{{ mix('js/app.js') }}"></script>
     22  </body>
     23  </html>
     24 


    【route部分:】在phpstorm中 按两下shift弹出搜索框,键入web

    批注 2020-02-25 203000

    从结果中选择web.php打开

    我们通过在web.php中键入下列代码增加一个route【或者修改一个其他route】

      1 Route::get('/index', function () {
      2      return view('index');
      3  });


    批注 2020-02-25 203316

    接下来打开 http://lavue.test/index 即可查看

    批注 2020-02-25 203553

    Element-UI 配置

    打开控制台,键入

      1 npm i element-ui -s

    安装成功界面:

    批注 2020-02-25 205014

    安装完成后,需要在我们的项目中

    (1)引入Element组件:

    修改resources/js/app.js文件,在其中添加以下代码:

      1 import ElementUI from 'element-ui';
      2 import 'element-ui/lib/theme-chalk/index.css';
      3 
      4 Vue.use(ElementUI);
      5 

    批注 2020-02-25 205547

    (2)测试使用:修改ExampleComponnet.vue文件,在文件中任意添加一个element组件试试效果:


      1 <template>
      2     <div class="container">
      3          <div class="row justify-content-center">
      4              <div class="col-md-8 col-md-offset-2">
      5                  <div class="panel panel-default">
      6                      <div class="panel-body">
      7                          请选择您的汽车品牌:
      8                     </div>
      9                      <el-select v-model="brand" placeholder="选择汽车品牌">
     10                          <el-option
     11                              v-for="brand in brands"
     12                              :key="brand.value"
     13                              :label="brand.label"
     14                              :value="brand.value"
     15                          ></el-option>
     16                      </el-select>
     17                  </div>
     18              </div>
     19          </div>
     20      </div>
     21  </template>
     22 
     23 <script>
     24      export default {
     25          mounted() {
     26              console.log('Component mounted.')
     27          },
     28          data: function () {
     29              return {
     30                  brand: '',
     31                  brands: [
     32                      {label: '宝马', value: 'option1'},
     33                      {label: '比亚迪', value: 'option2'},
     34                      {label: '丰田', value: 'option3'},
     35                      {label: '本田', value: 'option4'},
     36                      {label: '吉利', value: 'option5'},
     37                      {label: '马自达', value: 'option6'},
     38                      {label: '长城', value: 'option7'},
     39                  ]
     40              }
     41          }
     42      }
     43  </script>
     44 

    如果没有执行过npm run watch-poll ,这时候看不到效果,键入

      1 npm run dev

    即可, 运行结果如下,说明 Element 组件已经成功添加至项目中

    批注 2020-02-25 210608

    至此,Element配置完成。

    Vue-router 配置

    (1). 安装vue-router:打开命令行,键入:

      1 npm install vue-router –save-dev

    待安装完成。


    补充:关于—save-dev:


      1 npm install moduleName # 安装模块到项目目录下
      2 
      3 npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置。
      4 
      5 npm install -save moduleName # -save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。
      6 
      7 npm install -save-dev moduleName # -save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。
      8 


    (2)修改js以及视图: 在resources/js文件夹下创建router.js 和 App.vue文件


    (2.1)向App.vue中添加:


      1 <template>
      2     <div>
      3         <router-view></router-view>
      4     </div>
      5 </template>
      6 
      7 <script scope>
      8     export default {
      9         name: "App",
     10         data: function () {
     11             return {}
     12         },
     13         components: {},
     14         computed: {},
     15         methods: {},
     16         mounted() {
     17         },
     18 
     19     }
     20 </script>
     21 
     22 <style scoped>
     23 
     24 </style>
     25 


    (2.2)向router.js中添加:



      1 import Vue from "vue";
      2 import VueRouter from "vue-router";
      3 
      4 Vue.use(VueRouter);//全局方法 Vue.use() 使用插件,需要在你调用 new Vue() 启动应用之前完成:
      5 
      6 
      7 export default new VueRouter({
      8     saveScrollPosition: true,
      9     routes: [
     10         {
     11             name: 'index',
     12             path: '/',
     13             component: resolve => void (require(['./components/ExampleComponent.vue'], resolve)),
     14         },
     15     ]
     16 })
     17 

    注:要了解resolve=>require 可以查看:

    component:(resolve) => require

    (2.3)向app.js中添加:

      1 import App from './App.vue';
      2 import router from './router.js';

    修改:

      1 const app = new Vue({
      2         el: '#app',
      3         router,
      4         render: h => h(App),
      5      })
      6  ;

    批注 2020-02-25 215708


    打开 http://lavue.test/index#/

     批注 2020-02-25 220208

    说明 vue-router 安装成功【之前的el-select不会显示】

    Vue结构为:

    批注 2020-02-25 220447

    因为

      1 const app = new Vue({
      2         el: '#app',
      3         router,
      4         render: h => h(App),
      5      })
      6  ;


    如果去掉 render: h => h(App),

    Vue结构为:

    批注 2020-02-25 220652

    也就是说 render: h => h(App), 指定了渲染的是App组件内容;相关内容可以查看:

    Vue2.0 render:h => h(App)

    至此安装全部结束。

  • 相关阅读:
    复杂网络常用数据集网站
    01单人决策问题
    《无线网络安全技术》阅读笔记
    最优化理论基础
    测试layer控件,除了ie报错其它浏览器都生效
    Native App、Web App、Hybrid App
    有些效果在IE下运行时,IE下开调试模式才显示正常是什么原因?
    关于Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别及用法
    js表单提交的三种方式
    前端涉及的所有知识体系
  • 原文地址:https://www.cnblogs.com/dzkjz/p/12361718.html
Copyright © 2011-2022 走看看