初學(xué)vue實(shí)現(xiàn)todolist項(xiàng)目(上)

通過(guò)三天對(duì)vue的學(xué)習(xí),上手一個(gè)簡(jiǎn)單項(xiàng)目來(lái)加深理解。

安裝vue

方案一:<script>標(biāo)簽直接引入

  1. 你可以使用cdn直接引入
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
  1. 也可以通過(guò)官網(wǎng)下載vue.js文件

方案二:使用vue-cli快速搭建項(xiàng)目

安裝vue-cli

       確保電腦已經(jīng)安裝有g(shù)it和node
  • 打開命令行,安裝
npm install -g @vue/cli
# OR
yarn global add @vue/cli
  • 安裝完成后可以檢驗(yàn)一下是否安裝完成
vue --version
  • 在目標(biāo)文件夾下,創(chuàng)建一個(gè)vue項(xiàng)目
npm install -g @vue/cli-init
# 在這因?yàn)槭褂玫氖?.x版本,因此使用init功能創(chuàng)建。3.0版本方法可參考官網(wǎng)
vue init webpack my-project

需要補(bǔ)充的基礎(chǔ)知識(shí)

創(chuàng)建實(shí)例

<!DOCTYPE html>
<html dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>todolist</title>
    <script src="./vue.js"></script>
  </head>
  <body>
    <div id="app"></div>
    <script>
      var vm = new Vue({   //我們主要通過(guò)new字符來(lái)創(chuàng)建一個(gè)Vue實(shí)例,在這里我們把新創(chuàng)建的實(shí)例放在對(duì)象vm上
        el:"#app",//el是element的簡(jiǎn)寫,代表創(chuàng)建的實(shí)例需要掛載于id為app的dom元素下
        data: {               //data屬性用于儲(chǔ)存
          content:"Jack",
        },
        methods: {           //方法寫在這里面
          handleClick: function() {
            alert("Jack")
          }
        }
      })
    </script>
  </body>
</html>

數(shù)據(jù)

在data屬性中的數(shù)據(jù)怎么樣調(diào)用顯示呢?
可以直接在掛在的dom元素中添加{{變量名}}(差值表達(dá)式)獲取數(shù)據(jù)值。

<div id="app">{{content}}</div>

我們還可以通過(guò)v-html和v-text指令的方法來(lái)實(shí)現(xiàn)

<div id="app" v-text="content"></div>
<div id="app" v-text="content"></div>

在這里,這兩個(gè)指令在頁(yè)面顯示的內(nèi)容都是完全一樣的。但是他們有區(qū)別的。

如果我們將content的內(nèi)容修改一下,

content:"<h1>Jack<h1>"

我們會(huì)看到,v-text顯示的內(nèi)容為第一行。v-html的內(nèi)容為第二行。v-html并不會(huì)轉(zhuǎn)譯數(shù)據(jù)的內(nèi)容,但是v-text能將標(biāo)簽的內(nèi)容轉(zhuǎn)譯并顯示出來(lái)。使用差值表達(dá)式和v-text效果一樣。

<h1>Jack<h1>
Jack//以h1標(biāo)簽的格式顯示

值得補(bǔ)充的是三種模板語(yǔ)法“ ”或{{ }}中可按JavaScript語(yǔ)法書寫。

事件和方法

  • v-on:綁定事件(可簡(jiǎn)寫為@ 例如:@click)
<div id="app" v-on:click="handleClick">{{content}}</div>

  methods: {           //寫在vue實(shí)例當(dāng)中,完整代碼可參考上面第一段代碼
          handleClick: function() {
            alert("Jack")
          }
        }

屬性綁定和雙向綁定

  • 屬性綁定v-bind:
    例如我們需要為標(biāo)簽綁定一個(gè)叫做item屬性的,屬性值為“hello world”

那么我們應(yīng)該寫為

<div v-bind:item="hello world">{{content}}</div>
//或者簡(jiǎn)寫為
<div :item="hello world">{{content}}</div>
  • 雙向綁定v-model:
    所謂雙向綁定就是既可以通過(guò)數(shù)據(jù)改變顯示值,也可以通過(guò)輸入改變輸入值來(lái)改變數(shù)據(jù)值,可以實(shí)現(xiàn)雙向數(shù)據(jù)改變。這個(gè)也是實(shí)現(xiàn)todolist項(xiàng)目很重要的一點(diǎn)。

雙向綁定看文字解釋的話,可能有點(diǎn)暈。那就將下邊的代碼加入掛載的標(biāo)簽下,看看頁(yè)面有什么效果(試著改變一下輸入框的內(nèi)容)

<input v-model="content"/>
<h1>{{content}}<h1>

v-for指令

我們用 v-for 指令根據(jù)一組數(shù)組的選項(xiàng)列表進(jìn)行渲染。
這樣我們就可以通過(guò)改變數(shù)組數(shù)據(jù)來(lái)改變列表個(gè)數(shù)和內(nèi)容了,這是實(shí)現(xiàn)todolist列表項(xiàng)的關(guān)鍵。

<ul>
    <li v-for="item of list"></li>
</ul>

//實(shí)例中
data:{
    content:'',
    list:['1','2','3','4','5']
}

通過(guò)v-for以上事例將可以渲染為五個(gè)li標(biāo)簽內(nèi)容分別1,2,3,4,5。
以上代碼等同于以下代碼

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • # 傳智播客vue 學(xué)習(xí)## 1. 什么是 Vue.js* Vue 開發(fā)手機(jī) APP 需要借助于 Weex* Vu...
    再見天才閱讀 3,800評(píng)論 0 6
  • 基于Vue的一些資料 內(nèi)容 UI組件 開發(fā)框架 實(shí)用庫(kù) 服務(wù)端 輔助工具 應(yīng)用實(shí)例 Demo示例 element★...
    嘗了又嘗閱讀 1,287評(píng)論 0 1
  • 最近剛從學(xué)校邁入社會(huì),這是一個(gè)與自己內(nèi)心作斗爭(zhēng)的過(guò)程。有些人面對(duì)生活瑣事,可能是得心應(yīng)手的,能力強(qiáng),隨機(jī)...
    數(shù)學(xué)一直迷茫閱讀 872評(píng)論 0 3
  • 我想隔著車窗,去看這個(gè)世界的風(fēng)景。不回望來(lái)路,不計(jì)較終途。 我有一個(gè)很好的閨蜜,從六年級(jí)到高三,一直感情...
    甜不是糖閱讀 207評(píng)論 0 2
  • 杜汶澤又拍了照片,他和另外幾個(gè)人在工地上發(fā)了這個(gè)照片,表達(dá)十分的迅速??吹竭@些照片的時(shí)候第一個(gè)反應(yīng)就是這到底是什么...
    不像話的故事閱讀 277評(píng)論 0 0

友情鏈接更多精彩內(nèi)容