vue項目開發(fā)-1

Vue基本功能

表單綁定

  • 用 v-model 指令在表單 <input>虑瀑、<textarea> 及 <select> 元素上創(chuàng)建雙向數(shù)據(jù)綁定

    • 它會根據(jù)控件類型自動選取正確的方法來更新元素
    • 通過 JavaScript 在組件的 data 選項中聲明初始值
  • 文本
  • 多行文本
  • model 指令的作用是將 input 元素 value 屬性的值和創(chuàng)建的 Vue 對象中 value 的值 進行綁定

    • Vue 將這個值綁定后,在 input 中引起的 value 值變化就會實時反映到關(guān)聯(lián)的 Vue 對象抵皱,所以引用的 {{ value }} 也會跟著變化
  • body當(dāng)中使用v-model

        <div id="app">
            <input type="text" v-model="value" />
            <div>value的值是:{{ value }}</div>
        </div>
  • vue對象data屬性指定元素
<script>
        var app = new Vue({
            el: '#app',
            data: function(){
                return {value: ""}
            }
        })
    </script>

事件綁定

  • body中使用v-on指令
        <div id="app">
...
            <input type="button" value="發(fā)送" v-on:click="send" />
        </div>
  • VUE對象中增加methods
        var app = new Vue({
...
            methods:{
                send: function(){
                    alert("發(fā)送成功!")
                    this.value = ''
                }
            }
        })

計算屬性

  • 對于任何復(fù)雜邏輯,你都應(yīng)當(dāng)使用計算屬性
  • Vue 還可以根據(jù)綁定的數(shù)據(jù)做計算,然后引用計算的結(jié)果

    • 假設(shè)想實時統(tǒng)計輸入的字數(shù),可以在 Vue 對象里加上對 value 長度的計算值
  • 計算屬性申明到 computed 對象里吼虎,這個對象的鍵是計算的結(jié)果,值是計算函數(shù)苍鲜,這里計算了 value 的長度

    • 可以使用 this.count 引用計算結(jié)果思灰,也可以在關(guān)聯(lián)的模板中直接引用,和綁定的數(shù)據(jù)value的用法非常類似
  • div標(biāo)簽指定綁定變量

        <div id="app">
...
            <div>字數(shù):{{ count }}</div>
        </div>
  • 實現(xiàn)computed對象混滔,增加count屬性
        var app = new Vue({
...
            computed:{ //計算屬性
                count: function(){
                    return this.value.length
                }
            }
        })

樣式綁定

  • vue還可以動態(tài)地幫為元素綁定樣式(class 屬性)
    • 實現(xiàn): input 中沒有任何值輸入洒疚,即 value 的值為空時,input 的邊框為紅色以提醒用戶沒有內(nèi)容
      • 首先寫一個簡單的樣式坯屿,樣式通常寫到 head 標(biāo)簽里油湖,用 style 包裹
      • 然后將這個 empty 用于 input 的 class 屬性,瀏覽器就會渲染對應(yīng)的樣式
    • vue會根據(jù) empty 后的表達式 !count 的真假來判斷 class 的值是否為 empty领跛,如果為真(即 count = 0 的情況)乏德,則 class 的值為 empty,否則為空
  • head中添加style
    <head>
...
        <style>
            .empty {
                border-color: red;
            }
        </style>
    </head>
  • 使用v-bind綁定樣式
<input type="text" v-bind:class="{empty: !count}" v-model="value" />

功能01:methods增加判斷

methods:{
                send: function(){
                    if(!this.count){
                        alert("請輸入內(nèi)容!")
                        return
                    }
...
                }
            },

功能02:條件渲染

  • v-if 指令用于條件性地渲染一塊內(nèi)容喊括。這塊內(nèi)容只會在指令的表達式返回 truthy 值的時候被渲染
<h1 v-if="awesome">Vue is awesome!</h1>
  • v-else
<h1 v-if="awesome">Vue is awesome!</h1> 
<h1 v-else>Oh no ??</h1>
  • v-else-if胧瓜,顧名思義,充當(dāng) v-if 的“else-if 塊”

  • 用 key 管理可復(fù)用的元素

    • 這兩個元素是完全獨立的郑什,不要復(fù)用它們
  • 條件渲染

        <div id="app">
...
            <div v-if="count">value的值是:{{ value }}</div>
        </div>

count非零的時候為真

項目實戰(zhàn)

顯示TODOS

  • 創(chuàng)建vue對象府喳,指定data對象
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.js"></script>
<script>
    var app = new Vue({
        el: '#todo-app',
        data: function(){
            return {
                todos:[
                    {id:0, title:'學(xué)習(xí)vue'},
                    {id:1, title:'工作匯報'},
                ]
            }
        }
    })
</script>

  • 修改li標(biāo)簽,使用v-for指令
  <ul>
    <li v-for="todo in todos" :key='todo.id'>
        <span>{{ todo.title }}</span>
...
    </li>

添加TODO

  • 實現(xiàn) addTodo 方法
    • 方法聲明在 Vue 對象的 methods 屬性里
      • 生成一個新的 todo 對象蘑拯,然后將其添加到 todos 列表里(使用push 方法把一個元素加入到數(shù)組的末尾)钝满,然后將用戶的輸入值清空
        • 注意 newTodoTitle 和輸入框的 value 值是雙向綁定的,任何一個值改變申窘,相應(yīng)的值都會跟著變
  • input輸入
    • 雙向綁定弯蚜,獲取用戶輸入
    • 綁定回車事件,調(diào)用函數(shù)
<input type="text" placeholder="添加 todo" v-model="newTodoTitle"
        @keyup.enter="addTodo"/>

  • vue對象偶洋,添加methods
<script>
    let id = 0
    var app = new Vue({
...
        data: function(){
            return {
                todos:[],
                newTodoTitle:'',
            }
        },
        methods:{
            addTodo:function(){
                this.todos.push({id: id++, title: this.newTodoTitle})
                this.newTodoTitle = ''
            }
        }
    })

功能03

methods:{
            addTodo:function(){
                if (this.newTodoTitle === ''){
                    return
                }
...

功能04

  • 增加樣式
...
  <style>
...
    .empty {
        border-color: red;
    }
...
  • 修改用戶輸入input
<div id="todo-app">
  <div>
...
    <input type="text" v-bind:class="{empty: emptyCheck}"
        placeholder="添加 todo" v-model="newTodoTitle"
        @keyup.enter="addTodo"/>
    <span v-if="emptyCheck" class="selected">請輸入內(nèi)容熟吏!</span>
...
  • Vue對象,增加emptyCheck計算屬性玄窝,checkEmpty
<script>
    let id = 0
    var app = new Vue({
        el: '#todo-app',
        data: function(){
            return {
...
                checkEmpty: false,
...
        methods:{
            addTodo:function(){
                if (this.newTodoTitle === ''){
                    this.checkEmpty = true;
                    return
                }
...
                this.checkEmpty = false;
            }
        },
        computed:{ //計算屬性
            emptyCheck: function(){
                return this.newTodoTitle.length === 0 && this.checkEmpty
            }
        }
...
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者悍引。
  • 序言:七十年代末恩脂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子趣斤,更是在濱河造成了極大的恐慌俩块,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浓领,死亡現(xiàn)場離奇詭異玉凯,居然都是意外死亡,警方通過查閱死者的電腦和手機联贩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門漫仆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泪幌,你說我怎么就攤上這事盲厌。” “怎么了祸泪?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵吗浩,是天一觀的道長。 經(jīng)常有香客問我没隘,道長懂扼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任右蒲,我火速辦了婚禮阀湿,結(jié)果婚禮上屡限,老公的妹妹穿的比我還像新娘。我一直安慰自己炕倘,他們只是感情好钧大,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著罩旋,像睡著了一般啊央。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涨醋,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天瓜饥,我揣著相機與錄音,去河邊找鬼浴骂。 笑死乓土,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的溯警。 我是一名探鬼主播趣苏,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼梯轻!你這毒婦竟也來了食磕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤喳挑,失蹤者是張志新(化名)和其女友劉穎彬伦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伊诵,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡单绑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了曹宴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搂橙。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖浙炼,靈堂內(nèi)的尸體忽然破棺而出份氧,到底是詐尸還是另有隱情,我是刑警寧澤弯屈,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布蜗帜,位于F島的核電站,受9級特大地震影響资厉,放射性物質(zhì)發(fā)生泄漏厅缺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望湘捎。 院中可真熱鬧诀豁,春花似錦、人聲如沸窥妇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽活翩。三九已至烹骨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間材泄,已是汗流浹背沮焕。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拉宗,地道東北人峦树。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像旦事,于是被迫代替她去往敵國和親魁巩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容