成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Vue + Webpack 實(shí)踐

fsmStudy / 1910人閱讀

摘要:模塊熱加載是的一個(gè)非常碉堡的特性,將會(huì)為我們的單頁(yè)應(yīng)用帶來(lái)極大的便利。這是一個(gè)生態(tài)系統(tǒng)中一個(gè)偉大創(chuàng)舉。

Vue全家桶 參考

vue-tutorial

Vue+Webpack開(kāi)發(fā)可復(fù)用的單頁(yè)面富應(yīng)用教程

Vue+Webpack使用規(guī)范
對(duì)比其他框架

推薦代碼使用 CommonJS 或 ES6 模塊,然后使用 Webpack 或 Browserify 打包。

你可以使用 Webpack + vue-loader 或 Browserify + vueify 構(gòu)建這些單文件 Vue 組件。

可以在 Webpackbin.com 上在線(xiàn)嘗試!
chrome開(kāi)發(fā)工具 : vue-developertools

安裝

我們將會(huì)使用webpack去為我們的模塊打包,預(yù)處理,熱加載。如果你對(duì)webpack不熟悉,它就是可以幫助我們把多個(gè)js文件打包為1個(gè)入口文件,并且可以達(dá)到按需加載。這就意味著,我們不用去擔(dān)心由于太多的組件,導(dǎo)致了過(guò)多的HTTP請(qǐng)求,這是非常有益于產(chǎn)品體驗(yàn)的。但,我們并不只是為了這個(gè)而使用webpack,我們需要用webpack去編譯.vue文件,如果沒(méi)有使用一個(gè)loader去轉(zhuǎn)換我們.vue文件里的style,js,html,那么瀏覽器就無(wú)法識(shí)別。

模塊熱加載是webpack的一個(gè)非常碉堡的特性,將會(huì)為我們的單頁(yè)應(yīng)用帶來(lái)極大的便利。

通常來(lái)說(shuō),當(dāng)我們修改了代碼刷新頁(yè)面,那應(yīng)用里的所有狀態(tài)就都沒(méi)有了。這對(duì)于開(kāi)發(fā)一個(gè)單頁(yè)應(yīng)用來(lái)說(shuō)是非常痛苦的,因?yàn)樾枰匦略谂芤槐榱鞒獭H绻心K熱加載,當(dāng)你修改了代碼,你的代碼會(huì)直接修改,頁(yè)面并不會(huì)刷新,所以狀態(tài)也會(huì)被保留。

Vue也為我們提供了CSS預(yù)處理,所以我們可以選擇在.vue文件里寫(xiě)LESS或者SASS去代替原生CSS。

我們過(guò)去通常需要使用npm下載一堆的依賴(lài),但是現(xiàn)在我們可以選擇Vue-cli。這是一個(gè)vue生態(tài)系統(tǒng)中一個(gè)偉大創(chuàng)舉。這意味著我們不需要手動(dòng)構(gòu)建我們的項(xiàng)目,而它就可以很快地為我們生成。

使用腳手架工具 vue-cli 可以快速地構(gòu)建項(xiàng)目:?jiǎn)挝募?Vue 組件,熱加載,保存時(shí)檢查代碼,單元測(cè)試等。

安裝vue-cli (確保你有node和npm)

$ npm install -g vue-cli

使用腳手架初始創(chuàng)建項(xiàng)目

$ vue init  
Example:*創(chuàng)建一個(gè)webpack項(xiàng)目* 
$ vue init webpack my-project

項(xiàng)目模版下載好了之后需要安裝項(xiàng)目用到的依賴(lài)包

$ cd my-project
$ npm install

這時(shí)可以將項(xiàng)目運(yùn)行起來(lái)看看效果了

$ npm run dev

這一行命令代表著它會(huì)去找到package.jsonscripts對(duì)象,執(zhí)行node bulid/dev-server.js。在這文件里,配置了Webpack,會(huì)讓它去編譯項(xiàng)目文件,并且運(yùn)行服務(wù)器,我們?cè)?b>localhost:8080即可查看我們的應(yīng)用。

vue-cli 構(gòu)建的目錄結(jié)構(gòu)
.
├── build/                      # webpack config files
│   └── ...
├── config/                     
│   ├── index.js                # main project config
│   └── ...
├── src/
│   ├── main.js                 # app entry file
│   ├── App.vue                 # main app component
│   ├── components/             # ui components
│   │   └── ...
│   └── assets/                 # module assets (processed by webpack)
│       └── ...
├── static/                     # pure static assets (directly copied)
├── test/
│   └── unit/                   # unit tests
│   │   ├── specs/              # test spec files
│   │   ├── index.js            # test build entry file
│   │   └── karma.conf.js       # test runner config file
│   └── e2e/                    # e2e tests
│   │   ├── specs/              # test spec files
│   │   ├── custom-assertions/  # custom assertions for e2e tests
│   │   ├── runner.js           # test runner script
│   │   └── nightwatch.conf.js  # test runner config file
├── .babelrc                    # babel config
├── .editorconfig.js            # editor config
├── .eslintrc.js                # eslint config
├── index.html                  # index.html template
└── package.json                # build scripts and dependencies

更多內(nèi)容參照https://vuejs-templates.github.io/webpack

Vue 指令

常用指令:

v-if

v-show

v-else

v-for

v-bind

v-on

v-model
更多指令請(qǐng)移步Vue 指令

初始化(main.js)

對(duì)于單頁(yè)應(yīng)用,推薦使用官方庫(kù) vue-router。詳細(xì)請(qǐng)查看它的文檔。

添加route配置
import VueRouter from "vue-router"
import VueResource from "vue-resource"

import Hello from "./components/Hello.vue"
import Page from "./components/Page.vue"

//注冊(cè)兩個(gè)插件
Vue.use(VueResource)
Vue.use(VueRouter)

const router = new VueRouter()

// 路由map
router.map({
  "/hello": {
    component: Hello
  },
  "/page": {
    component: Page
  }
})

router.redirect({
  "*": "/hello"
})

router.start(App, "#app")//設(shè)置啟動(dòng)頁(yè)面

index.html

應(yīng)用route
創(chuàng)建&應(yīng)用組件


如果你喜歡預(yù)處理器,甚至可以這么做:

定義View:

定義Model和ViewModel:

    var vueComponent = require("../components/vue-component");
    module.exports = {
        components: {
            vueComponent
        }
    }
數(shù)據(jù)請(qǐng)求:vue-resource
//在main.js中注冊(cè)vue-resource
import VueResource from "vue-resource"
Vue.use(VueResource)
// 基于全局Vue對(duì)象使用http
Vue.http.get("http://webapi.busi.inke.com/web/live_hotlist_pc", {}).then((response) => {
    console.log("[Leo]Vue-resource:success=>", response);
}, (response) => {
    console.log("[Leo]Vue-resource:error=>", response);
});
// 在一個(gè)Vue實(shí)例內(nèi)使用$http
this.$http.get("http://webapi.busi.inke.com/web/live_hotlist_pc", {}).then((response) => {
    console.log("[Leo]Vue-resource:success=>", response);
}, (response) => {
    console.log("[Leo]Vue-resource:error=>", response);
});

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/80510.html

相關(guān)文章

  • webpack+vue+vux+express+lowdb實(shí)踐

    摘要:花了一天時(shí)間,做了一套加班報(bào)名系統(tǒng),前端基于,后端基于。如果需求對(duì)視覺(jué)要求不高,還是非常推薦把引進(jìn)到項(xiàng)目中的。提供了各種各樣的組件,基本上拿來(lái)就能用。需要注意的是,讀寫(xiě)文件默認(rèn)都是同步的,將的寫(xiě)配置成異步寫(xiě)入能極大的提升性能。 花了一天時(shí)間,做了一套加班報(bào)名系統(tǒng),前端基于webpack+vue+vux,后端基于express+lowdb。以前在項(xiàng)目中也都接觸過(guò)webpack+vue,第...

    awesome23 評(píng)論0 收藏0
  • ABAP system landscape和vue項(xiàng)目webpack構(gòu)建的最佳實(shí)踐

    摘要:基于的一般都有,和三種類(lèi)型的系統(tǒng)。而前端項(xiàng)目的設(shè)置也類(lèi)似。而無(wú)論是開(kāi)發(fā),測(cè)試還是生產(chǎn),代碼都相同。之所以要引入也是類(lèi)似面向?qū)ο蟮木幊趟枷?,把和環(huán)境一些通用的配置抽取出來(lái),避免在和里重復(fù)定義。 基于Netweaver的ABAP transport route一般都有dev,test和prod三種類(lèi)型的系統(tǒng)。 showImg(https://segmentfault.com/img/rem...

    yeooo 評(píng)論0 收藏0
  • webpack 教程資源收集

    學(xué)習(xí)的過(guò)程中收藏了這些優(yōu)秀教程和的項(xiàng)目,希望對(duì)你有幫助。 github地址, 有不錯(cuò)的就更新 官方文檔 中文指南 初級(jí)教程 webpack-howto 作者:Pete Hunt Webpack 入門(mén)指迷 作者:題葉   webpack-demos 作者:ruanyf 一小時(shí)包教會(huì) —— webpack 入門(mén)指南 作者:VaJoy Larn   webpack 入門(mén)及實(shí)踐 作者:...

    Backache 評(píng)論0 收藏0
  • 記一次vue-webpack項(xiàng)目?jī)?yōu)化實(shí)踐【更新】

    摘要:優(yōu)化空間不大主要關(guān)注另外兩個(gè)上面。目前為止,項(xiàng)目打包后的大部頭就是,這個(gè)目前的優(yōu)化空間較小。當(dāng)然,從整體優(yōu)化的大維度上來(lái)說(shuō)優(yōu)化的點(diǎn)還有很多,這個(gè)文章繼續(xù)更新下去。 項(xiàng)目現(xiàn)狀 項(xiàng)目是一個(gè)數(shù)據(jù)監(jiān)測(cè)平臺(tái),引入了ehcart和three.js 負(fù)責(zé)項(xiàng)目的數(shù)據(jù)可視化;打包后,體積高達(dá)2.1M,這個(gè)體積相比于我的項(xiàng)目規(guī)模來(lái)說(shuō)就顯得稍有笨重了 使用webpack-bundle-analyzer分析了...

    ernest.wang 評(píng)論0 收藏0
  • Vue單頁(yè)面骨架屏實(shí)踐

    github 地址: VV-UI/VV-UI 演示地址: vv-ui 文檔地址:skeleton 關(guān)于骨架屏介紹 骨架屏的作用主要是在網(wǎng)絡(luò)請(qǐng)求較慢時(shí),提供基礎(chǔ)占位,當(dāng)數(shù)據(jù)加載完成,恢復(fù)數(shù)據(jù)展示。這樣給用戶(hù)一種很自然的過(guò)渡,不會(huì)造成頁(yè)面長(zhǎng)時(shí)間白屏或者閃爍等情況。 常見(jiàn)的骨架屏實(shí)現(xiàn)方案有ssr服務(wù)端渲染和prerender兩種解決方案。這里主要通過(guò)代碼為大家展示如何一步步做出這樣一個(gè)骨架屏: show...

    DevTTL 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<