在 Laravel 中使用vue(二)

來源:互聯網
上載者:User
上篇介紹了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

Alert 模組的具體實現

.alert-area(v-if='show')  .alert(:class='typeClass')    span(class='alert-close', @click='show=false') x    i.fa.fa-info-circle.alert-icon(style='font-size: 16px;line-height: 20px;')    .alert-text      slot()

頁面效果是這樣的:

點擊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 了,需要的同學自行查閱。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.