Vue 初體驗

Vue 初體驗

原生 JS 寫項目的問題

  • 語法冗長,復雜佑惠,操作頁面麻煩,效率低

JQuery 開發(fā)的問題

  • 提供了簡單的api,簡化了操作 dom 的方式
  • 但是沒有對業(yè)務邏輯分層膜蠢,需要維護數(shù)據(jù)和 dom 之間的同步

MVVM

  • M: model,數(shù)據(jù)模型莉兰,機器可讀性強的數(shù)據(jù)挑围,也就是前端中的數(shù)據(jù),如數(shù)組糖荒,對象等
  • V: view杉辙,視圖,人眼可讀性強的數(shù)據(jù)捶朵,表現(xiàn)為前端中的 dom 對象蜘矢,如輸入框,彈窗等
  • VM: 視圖模型综看,將模型和視圖進行雙向綁定品腹,表現(xiàn)為一些數(shù)據(jù)監(jiān)聽和數(shù)據(jù)綁定
雙向綁定

Get Vue

Github: https://github.com/vuejs/vue

英文官網(wǎng):https://vuejs.org/

中文官網(wǎng):https://cn.vuejs.org/

準備

vue 是一個漸進式的 Web JS 框架,注重開發(fā)體驗红碑、通用性和性能舞吭。但是本質上還是圍繞在 HtmlCSSJS 基礎上的技術镣典。所以 在學習 vue 之前以及在學習的過程中兔毙,都離不開這 "三劍客"。

HTML + CSS + JS 是基礎

JS 進階

vue 單文件組件兄春,也就是基于 .vue 文件格式的組件化開發(fā)澎剥,都是基于 ES6 語法,所以有必要去了解和學習 ES6 的特性赶舆。

windows

工具

Git

node(npm)

vue 入門

vue 是什么?

Vue (讀音 /vju?/芜茵,類似于 view) 是一套用于構建用戶界面漸進式框架叙量。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用九串。Vue 的核心庫只關注視圖層绞佩,不僅易于上手,還便于與第三方庫或既有項目整合猪钮。另一方面品山,當與現(xiàn)代化的工具鏈以及各種支持類庫結合使用時,Vue 也完全能夠為復雜的單頁應用提供驅動烤低。

  1. vue 是一個用于構建用戶界面的漸進式框架

我覺得它與其他框架的區(qū)別就是漸進式的想法肘交,也就是“Progressive”——這個詞在英文中定義是漸進,一步一步扑馁,不是說你必須一竿子把所有的東西都用上涯呻。 -作者本人在一次分享上對 漸進式框架 進行了闡述。

  1. vue 只關注視圖層腻要,可以自低向上逐層應用
    聲明式渲染 -> 組件系統(tǒng) -> 客戶管路由 -> 大規(guī)模的狀態(tài)管理 -> 構建工具
    在聲明式渲染階段复罐,甚至都可以像使用 jquery 一樣的使用 vue,直接引入<script src="https://cdn.jsdelivr.net/npm/vue"></script> 就可以使用闯第。

為什么要學習 vue 市栗?

官方文檔中有 vue 和其他 框架的對比,vue 對比其他框架咳短,總的來說填帽,vue 有下面這些特點,給我們參考是否值得學習:

  • 簡單咙好,學習曲線低
    它整體思想是擁抱經(jīng)典的 Web 技術篡腌,并在其上進行擴展。
  • 組件化開發(fā)
  • 資源豐富
    Awesome-vue
  • 輕量勾效、性能
    在 react 和 angular 等框架的對比中嘹悼,Vue 有更好的性能叛甫。第三方 benchmark
  • 完善的工具鏈
    vue-cli、vue-router杨伙、vuex...

vue 社區(qū)

安裝和運行

環(huán)境

一開始其监,我們不會涉及到 打包編譯 工具 webpack限匣,一切從最簡單的地方(Html抖苦、CSS、JS)開始米死。

兼容性

Vue 不支持 IE8 及以下版本锌历,因為 Vue 使用了 IE8 無法模擬的 ECMAScript 5 特性。但它支持所有兼容 ECMAScript 5 的瀏覽器峦筒。

更新日志

最新穩(wěn)定版本:2.5.16

每個版本的更新日志見 GitHub究西。

安裝

首先我們需要安裝 npm

npm 是 Node.js 的包管理工具,而且 npm 會在 安裝 Node.js 的時候順帶裝進來物喷,所以我們要安裝 Node.js卤材。

windows

下載msi文件安裝即可
linux

 yum install nodejs -y

然后可通過以下方式安裝 vue

  1. CDN

    可以指定具體的版本號:vue@版本號

    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    

    可供選擇的CDN

  2. CLI

    使用官方提供的腳手架工具 vue-cli ,可以幫助我們快速啟動一個 vue 工程項目峦失,有多種 vuejs-templates 工程模板可用 商膊,開箱即用,快速開發(fā)宠进。

       // 設備npm國內源
      npm config set  registry https://registry.npm.taobao.org/
      // 安裝 vue-cli
      npm install -g vue-cli cnpm vue
      // 生成項目
      vue init webpack my-project
    

完整版本 和 運行時版本

Vue.js 的運行過程實際上包含兩步。第一步藐翎,編譯器將字符串模板(template)編譯為渲染函數(shù)(render)材蹬,稱之為編譯過程;第二步吝镣,運行時實際調用編譯的渲染函數(shù)堤器,稱之為運行過程。

不同的版本

  1. 完整版:同時包含編譯器和運行時的版本末贾。
  2. 編譯器:用來將模板字符串編譯成為 JavaScript 渲染函數(shù)的代碼闸溃。
  3. 運行時:用來創(chuàng)建 Vue 實例、渲染并處理虛擬 DOM 等的代碼拱撵』源ǎ基本上就是除去編譯器的其它一切。
  • 獨立版本

    包含了編譯器拴测,支持 template 選項乓旗,可以將 tamplate 選項編譯為 render 函數(shù),它也依賴于瀏覽器的接口的存在集索,所以你不能使用它來為服務器端渲染屿愚。

  • 運行時版本

    不包括模板編譯汇跨,不支持 template 選項。

    可以用 render 選項妆距。
    可以在單文件組件使用穷遂,因為單文件組件的模板是在構建時預編譯到 render 函數(shù)中,運行時構建只有獨立構建大小的 30%娱据,只有 16Kb min+gzip 大小蚪黑。

    NPM 上的 vue 默認指向運行時版本。適合和 打包編譯結合使用吸耿,也就是適合于單文件組件開發(fā)祠锣。vue package.json

附:
原生 dom,js咽安,vue操作元素對比

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>

  <!-- <div id="app"></div> -->
  <div id="app">{{ message }}</div>
</body>
<script src="../utils/vue.js"></script>
<script src="../utils/jquery.js"></script>

<!--// Dom-->
<script>
  // var message = '世界杯哪些巨星沒有“辜負”中國金主伴网?From JS'
  // document.getElementById('app').innerHTML = message
  // var message = '星座世界杯|“風一樣的男子”內馬爾,你們嘲笑我無所謂, From JS'
  // document.getElementById('app').innerHTML = message
</script>

<!--// Jquery-->
<script>
  // var message = '世界杯哪些巨星沒有“辜負”中國金主妆棒?From JS'
  // $('#app').html(message)
  // var message = '星座世界杯|“風一樣的男子”內馬爾澡腾,你們嘲笑我無所謂, From JS'
  // $('#app').html(message)
</script>


<!--// Vue-->
<script>
  // var app = new Vue({
  //     // 綁定視圖
  //   el: '#app',
  //     // 綁定數(shù)據(jù)
  //   data() {
  //     return {
  //       message: '星座世界杯|“風一樣的男子”內馬爾,你們嘲笑我無所謂, From Vue'
  //     }
  //   }
  // })

  // // 更新數(shù)據(jù)糕珊,不用再關心如何綁定到試圖动分,數(shù)據(jù)會驅動試圖
  // app.message = '世界杯哪些巨星沒有“辜負”中國金主? From Vue'
</script>

</html>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末红选,一起剝皮案震驚了整個濱河市澜公,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喇肋,老刑警劉巖坟乾,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蝶防,居然都是意外死亡甚侣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門间学,熙熙樓的掌柜王于貴愁眉苦臉地迎上來殷费,“玉大人,你說我怎么就攤上這事低葫∠晗郏” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵嘿悬,是天一觀的道長殷绍。 經(jīng)常有香客問我,道長鹊漠,這世上最難降的妖魔是什么主到? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任茶行,我火速辦了婚禮,結果婚禮上登钥,老公的妹妹穿的比我還像新娘畔师。我一直安慰自己,他們只是感情好牧牢,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布看锉。 她就那樣靜靜地躺著,像睡著了一般塔鳍。 火紅的嫁衣襯著肌膚如雪伯铣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天轮纫,我揣著相機與錄音腔寡,去河邊找鬼。 笑死掌唾,一個胖子當著我的面吹牛放前,可吹牛的內容都是我干的。 我是一名探鬼主播糯彬,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼凭语,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了撩扒?” 一聲冷哼從身側響起似扔,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搓谆,沒想到半個月后虫几,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡挽拔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了但校。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片螃诅。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖状囱,靈堂內的尸體忽然破棺而出术裸,到底是詐尸還是另有隱情,我是刑警寧澤亭枷,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布袭艺,位于F島的核電站,受9級特大地震影響叨粘,放射性物質發(fā)生泄漏猾编。R本人自食惡果不足惜瘤睹,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望答倡。 院中可真熱鬧轰传,春花似錦、人聲如沸瘪撇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倔既。三九已至恕曲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渤涌,已是汗流浹背佩谣。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留歼捏,地道東北人稿存。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像瞳秽,于是被迫代替她去往敵國和親瓣履。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351