在 Laravel 中使用 vue(二)

上篇介绍了vue,以及在如何 Laravel 快速搭建vue环境。 这篇讲如何在 Laravel 中更深入使用Vue。

预处理

vue还支持使用预处理工具,比如jade, sass等等。 假设使用Stylus, Jade,那就npm install 一下呗

npm install stylus jade --save-dev

然后在vue文件中指定,你使用的预处理工具是什么


    
    
     
     
.hello
  h1 Hello Vue

    
    



Components

Vue允许我们做模块化封装,以一个Alert模块为例,这个模块的功能是弹出提示,然后用户可以手动关闭,程序员可以设置样式,内容等等。 目录划分,增加多一个components 的文件夹来存放模块,它跟views下的vue文件区别在于,它们是在多个页面呈现,或者是可以独立完成业务逻辑的可复用模块,而views 下是一个Vue实例的入口。

.
├── components
│   └── alert.vue
├── entries
│   └── hello.js
└── views
    └── Hello.vue

引入子模块


    
    
     
     
.wrapper
  alert()
    | Hello Vue

  alert(type='error')
    | Danger

  alert(type='success')
    | Login Success

    
    




页面效果是这样的: vue-in-laravel-alert 点击x可以关闭它。

Vue CDN

你可能会发现,使用上面一波操作之后,我们只产出一个js文件,这个文件的体积(未经过压缩)已经达到了2、300KB,这显然是不合常理的。原因是browserify把 整个vue也产出到js文件中。但其实 vue.js 我们并不需要改动到。我们可以将它抽出来,使用cdn。

可以使用 browserify-shim 来完成这件事。

npm install browserify-shim --save-dev

修改 package.json

"browserify": {
  "transform": [
    "vueify",
    "browserify-shim"
  ]
},
"browserify-shim": {
    "vue": "global:Vue"
  }

修改 blade 文件,引入cdn

Laravel
    

之前是直接整个vue文件压入,现在替换成一条语句,文件大小13KB

var _vue = (typeof window !== "undefined" ? window['Vue'] : typeof global !== "undefined" ? global['Vue'] : null);

TheEnd

我把Laravel项目中相关源代码都提交到github 了,需要的同学自行查阅。

相关阅读

如需转载,请注明出处: http://w3ctrain.com/2016/06/08/vue-in-laravel-2/ ,欢迎加入前端Q群( 467969149 )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel 使用 Vue.js 可以通过以下几个步骤实现: 1. 在 Laravel 项目安装 Node.js 和 NPM。 2. 安装 Laravel Mix。 ```bash npm install --save-dev laravel-mix ``` 3. 安装 Vue.js。 ```bash npm install --save vue ``` 4. 在 Laravel 项目的 resources/assets/js 目录创建 Vue.js 组件。例如,可以创建一个名为 Example.vue 的组件。 ```html <template> <div> <h1>Hello World!</h1> </div> </template> <script> export default { data() { return { message: 'Hello World!', } } } </script> ``` 5. 在 Laravel 项目的 resources/assets/js/app.js 文件引入 Vue.js 和创建的组件。 ```javascript require('./bootstrap'); import Vue from 'vue'; import Example from './components/Example.vue'; const app = new Vue({ el: '#app', components: { Example, } }); ``` 6. 在 Laravel 项目的 resources/views 目录创建 Blade 模板。例如,可以创建一个名为 welcome.blade.php 的模板。 ```html <!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Laravel</title> <link rel="stylesheet" href="{{ mix('/css/app.css') }}"> </head> <body> <div id="app"> <example></example> </div> <script src="{{ mix('/js/app.js') }}"></script> </body> </html> ``` 7. 在 Laravel 项目的 routes/web.php 文件定义路由。 ```php Route::get('/', function () { return view('welcome'); }); ``` 8. 运行 Laravel Mix 编译前端资源。 ```bash npm run dev ``` 9. 在浏览器访问 http://localhost:8000 即可看到 Vue.js 组件在 Laravel 使用效果。 以上是在 Laravel 使用 Vue.js 的基本步骤,根据实际情况进行适当调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值