日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue-day02-vue常用特性

發(fā)布時間:2024/7/19 vue 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue-day02-vue常用特性 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • Vue常用特性
      • 表單基本操作
      • 表單修飾符
      • 自定義指令
        • Vue.directive 注冊全局指令
        • Vue.directive 注冊全局指令 帶參數(shù)
        • 自定義指令局部指令
      • 計算屬性 computed
      • 偵聽器 watch
      • 過濾器
        • 過濾器中傳遞參數(shù)
      • 生命周期
        • 常用的 鉤子函數(shù)
      • 數(shù)組變異方法
      • 替換數(shù)組
      • 動態(tài)數(shù)組響應(yīng)式數(shù)據(jù)
      • 圖書列表案例
        • 1、 提供的靜態(tài)數(shù)據(jù)
        • 2、 把提供好的數(shù)據(jù)渲染到頁面上
        • 3、 添加圖書
        • 4 修改圖書-上
        • 5 修改圖書-下
        • 6 刪除圖書
      • 常用特性應(yīng)用場景
        • 1 過濾器
        • 2 自定義指令
        • 3 計算屬性
        • 生命周期
        • 案例代碼

Vue常用特性

表單基本操作

  • 獲取單選框中的值

    • 通過v-model
    <!-- 1、 兩個單選框需要同時通過v-model 雙向綁定 一個值 2、 每一個單選框必須要有value屬性 且value 值不能一樣 3、 當(dāng)某一個單選框選中的時候 v-model 會將當(dāng)前的 value值 改變 data 中的 數(shù)據(jù)gender 的值就是選中的值,我們只需要實時監(jiān)控他的值就可以了--><input type="radio" id="male" value="1" v-model='gender'><label for="male"></label><input type="radio" id="female" value="2" v-model='gender'><label for="female"></label><script>new Vue({data: {// 默認(rèn)會讓當(dāng)前的 value 值為 2 的單選框選中gender: 2, },})</script>
  • 獲取復(fù)選框中的值

    • 通過v-model
    • 和獲取單選框中的值一樣
    • 復(fù)選框 checkbox 這種的組合時 data 中的 hobby 我們要定義成數(shù)組 否則無法實現(xiàn)多選
    <!-- 1、 復(fù)選框需要同時通過v-model 雙向綁定 一個值 2、 每一個復(fù)選框必須要有value屬性 且value 值不能一樣 3、 當(dāng)某一個單選框選中的時候 v-model 會將當(dāng)前的 value值 改變 data 中的 數(shù)據(jù)hobby 的值就是選中的值,我們只需要實時監(jiān)控他的值就可以了--><div><span>愛好:</span><input type="checkbox" id="ball" value="1" v-model='hobby'><label for="ball">籃球</label><input type="checkbox" id="sing" value="2" v-model='hobby'><label for="sing">唱歌</label><input type="checkbox" id="code" value="3" v-model='hobby'><label for="code">寫代碼</label></div> <script>new Vue({data: {// 默認(rèn)會讓當(dāng)前的 value 值為 2 和 3 的復(fù)選框選中hobby: ['2', '3'],},}) </script>
  • 獲取下拉框和文本框中的值

    • 通過v-model
    <div><span>職業(yè):</span><!--1、 需要給select 通過v-model 雙向綁定 一個值 2、 每一個option 必須要有value屬性 且value 值不能一樣 3、 當(dāng)某一個option選中的時候 v-model 會將當(dāng)前的 value值 改變 data 中的 數(shù)據(jù)occupation 的值就是選中的值,我們只需要實時監(jiān)控他的值就可以了--><!-- multiple 多選 --><select v-model='occupation' multiple><option value="0">請選擇職業(yè)...</option><option value="1">教師</option><option value="2">軟件工程師</option><option value="3">律師</option></select><!-- textarea 是 一個雙標(biāo)簽 不需要綁定value 屬性的 --><textarea v-model='desc'></textarea></div> <script>new Vue({data: {// 默認(rèn)會讓當(dāng)前的 value 值為 2 和 3 的下拉框選中occupation: ['2', '3'],desc: 'nihao'},}) </script>

表單修飾符

  • .number 轉(zhuǎn)換為數(shù)值

    • 注意點:
    • 當(dāng)開始輸入非數(shù)字的字符串時,因為Vue無法將字符串轉(zhuǎn)換成數(shù)值
    • 所以屬性值將實時更新成相同的字符串。即使后面輸入數(shù)字,也將被視作字符串。
  • .trim 自動過濾用戶輸入的首尾空白字符

    • 只能去掉首尾的 不能去除中間的空格
  • .lazy 將input事件切換成change事件

    • .lazy 修飾符延遲了同步更新屬性值的時機。即將原本綁定在 input 事件的同步邏輯轉(zhuǎn)變?yōu)榻壎ㄔ?change 事件上
  • 在失去焦點 或者 按下回車鍵時才更新

    <!-- 自動將用戶的輸入值轉(zhuǎn)為數(shù)值類型 --> <input v-model.number="age" type="number"><!--自動過濾用戶輸入的首尾空白字符 --> <input v-model.trim="msg"><!-- 在“change”時而非“input”時更新 --> <input v-model.lazy="msg" >

自定義指令

  • 內(nèi)置指令不能滿足我們特殊的需求
  • Vue允許我們自定義指令

Vue.directive 注冊全局指令

<!-- 使用自定義的指令,只需在對用的元素中,加上'v-'的前綴形成類似于內(nèi)部指令'v-if','v-text'的形式。 --> <input type="text" v-focus> <script> // 注意點: // 1、 在自定義指令中 如果以駝峰命名的方式定義 如 Vue.directive('focusA',function(){}) // 2、 在HTML中使用的時候 只能通過 v-focus-a 來使用 // 注冊一個全局自定義指令 v-focus Vue.directive('focus', {// 當(dāng)綁定元素插入到 DOM 中。 其中 el為dom元素inserted: function (el) {// 聚焦元素el.focus();} }); new Vue({el:'#app' }); </script>

Vue.directive 注冊全局指令 帶參數(shù)

<input type="text" v-color='msg'><script type="text/javascript">/*自定義指令-帶參數(shù)bind - 只調(diào)用一次,在指令第一次綁定到元素上時候調(diào)用*/Vue.directive('color', {// bind聲明周期, 只調(diào)用一次,指令第一次綁定到元素時調(diào)用。在這里可以進(jìn)行一次性的初始化設(shè)置// el 為當(dāng)前自定義指令的DOM元素 // binding 為自定義的函數(shù)形參 通過自定義屬性傳遞過來的值 存在 binding.value 里面bind: function(el, binding){// 根據(jù)指令的參數(shù)設(shè)置背景色// console.log(binding.value.color)el.style.backgroundColor = binding.value.color;}});var vm = new Vue({el: '#app',data: {msg: {color: 'blue'}}});</script>

自定義指令局部指令

  • 局部指令,需要定義在 directives 的選項 用法和全局用法一樣
  • 局部指令只能在當(dāng)前組件里面使用
  • 當(dāng)全局指令和局部指令同名時以局部指令為準(zhǔn)
<input type="text" v-color='msg'><input type="text" v-focus><script type="text/javascript">/*自定義指令-局部指令*/var vm = new Vue({el: '#app',data: {msg: {color: 'red'}},//局部指令,需要定義在 directives 的選項directives: {color: {bind: function(el, binding){el.style.backgroundColor = binding.value.color;}},focus: {inserted: function(el) {el.focus();}}}});</script>

計算屬性 computed

  • 模板中放入太多的邏輯會讓模板過重且難以維護(hù) 使用計算屬性可以讓模板更加的簡潔
  • 計算屬性是基于它們的響應(yīng)式依賴進(jìn)行緩存的
  • computed比較適合對多個變量或者對象進(jìn)行處理后返回一個結(jié)果值,也就是數(shù)多個變量中的某一個值發(fā)生了變化則我們監(jiān)控的這個值也就會發(fā)生變化
<div id="app"><!-- 當(dāng)多次調(diào)用 reverseString 的時候 只要里面的 num 值不改變 他會把第一次計算的結(jié)果直接返回直到data 中的num值改變 計算屬性才會重新發(fā)生計算--><div>{{reverseString}}</div><div>{{reverseString}}</div><!-- 調(diào)用methods中的方法的時候 他每次會重新調(diào)用 --><div>{{reverseMessage()}}</div><div>{{reverseMessage()}}</div></div><script type="text/javascript">/*計算屬性與方法的區(qū)別:計算屬性是基于依賴進(jìn)行緩存的,而方法不緩存*/var vm = new Vue({el: '#app',data: {msg: 'Nihao',num: 100},methods: {reverseMessage: function(){console.log('methods')return this.msg.split('').reverse().join('');}},//computed 屬性 定義 和 data 已經(jīng) methods 平級 computed: {// reverseString 這個是我們自己定義的名字 reverseString: function(){console.log('computed')var total = 0;// 當(dāng)data 中的 num 的值改變的時候 reverseString 會自動發(fā)生計算 for(var i=0;i<=this.num;i++){total += i;}// 這里一定要有return 否則 調(diào)用 reverseString 的 時候無法拿到結(jié)果 return total;}}});</script>

偵聽器 watch

  • 使用watch來響應(yīng)數(shù)據(jù)的變化
  • 一般用于異步或者開銷較大的操作
  • watch 中的屬性 一定是data 中 已經(jīng)存在的數(shù)據(jù)
  • 當(dāng)需要監(jiān)聽一個對象的改變時,普通的watch方法無法監(jiān)聽到對象內(nèi)部屬性的改變,只有data中的數(shù)據(jù)才能夠監(jiān)聽到變化,此時就需要deep屬性對對象進(jìn)行深度監(jiān)聽
<div id="app"><div><span>名:</span><span><input type="text" v-model='firstName'></span></div><div><span>姓:</span><span><input type="text" v-model='lastName'></span></div><div>{{fullName}}</div></div><script type="text/javascript">/*偵聽器*/var vm = new Vue({el: '#app',data: {firstName: 'Jim',lastName: 'Green',// fullName: 'Jim Green'},//watch 屬性 定義 和 data 已經(jīng) methods 平級 watch: {// 注意: 這里firstName 對應(yīng)著data 中的 firstName // 當(dāng) firstName 值 改變的時候 會自動觸發(fā) watchfirstName: function(val) {this.fullName = val + ' ' + this.lastName;},// 注意: 這里 lastName 對應(yīng)著data 中的 lastName lastName: function(val) {this.fullName = this.firstName + ' ' + val;}}});</script>

過濾器

  • Vue.js允許自定義過濾器,可被用于一些常見的文本格式化。
  • 過濾器可以用在兩個地方:雙花括號插值和v-bind表達(dá)式。
  • 過濾器應(yīng)該被添加在JavaScript表達(dá)式的尾部,由“管道”符號指示
  • 支持級聯(lián)操作
  • 過濾器不改變真正的data,而只是改變渲染的結(jié)果,并返回過濾后的版本
  • 全局注冊時是filter,沒有s的。而局部過濾器是filters,是有s的
<div id="app"><input type="text" v-model='msg'><!-- upper 被定義為接收單個參數(shù)的過濾器函數(shù),表達(dá)式 msg 的值將作為參數(shù)傳入到函數(shù)中 --><div>{{msg | upper}}</div><!-- 支持級聯(lián)操作upper 被定義為接收單個參數(shù)的過濾器函數(shù),表達(dá)式msg 的值將作為參數(shù)傳入到函數(shù)中。然后繼續(xù)調(diào)用同樣被定義為接收單個參數(shù)的過濾器 lower ,將upper 的結(jié)果傳遞到lower中--><div>{{msg | upper | lower}}</div><div :abc='msg | upper'>測試數(shù)據(jù)</div></div><script type="text/javascript">// lower 為全局過濾器 Vue.filter('lower', function(val) {return val.charAt(0).toLowerCase() + val.slice(1);});var vm = new Vue({el: '#app',data: {msg: ''},//filters 屬性 定義 和 data 已經(jīng) methods 平級 // 定義filters 中的過濾器為局部過濾器 filters: {// upper 自定義的過濾器名字 // upper 被定義為接收單個參數(shù)的過濾器函數(shù),表達(dá)式 msg 的值將作為參數(shù)傳入到函數(shù)中upper: function(val) {// 過濾器中一定要有返回值 這樣外界使用過濾器的時候才能拿到結(jié)果return val.charAt(0).toUpperCase() + val.slice(1);}}});</script>

過濾器中傳遞參數(shù)

<div id="box"><!--filterA 被定義為接收三個參數(shù)的過濾器函數(shù)。其中 message 的值作為第一個參數(shù),普通字符串 'arg1' 作為第二個參數(shù),表達(dá)式 arg2 的值作為第三個參數(shù)。-->{{ message | filterA('arg1', 'arg2') }}</div><script>// 在過濾器中 第一個參數(shù) 對應(yīng)的是 管道符前面的數(shù)據(jù) n 此時對應(yīng) message// 第2個參數(shù) a 對應(yīng) 實參 arg1 字符串// 第3個參數(shù) b 對應(yīng) 實參 arg2 字符串Vue.filter('filterA',function(n,a,b){if(n<10){return n+a;}else{return n+b;}});new Vue({el:"#box",data:{message: "哈哈哈"}})</script>

生命周期

  • 事物從出生到死亡的過程
  • Vue實例從創(chuàng)建 到銷毀的過程 ,這些過程中會伴隨著一些函數(shù)的自調(diào)用。我們稱這些函數(shù)為鉤子函數(shù)

常用的 鉤子函數(shù)

beforeCreate在實例初始化之后,數(shù)據(jù)觀測和事件配置之前被調(diào)用 此時data 和 methods 以及頁面的DOM結(jié)構(gòu)都沒有初始化 什么都做不了
created在實例創(chuàng)建完成后被立即調(diào)用此時data 和 methods已經(jīng)可以使用 但是頁面還沒有渲染出來
beforeMount在掛載開始之前被調(diào)用 此時頁面上還看不到真實數(shù)據(jù) 只是一個模板頁面而已
mountedel被新創(chuàng)建的vm.$el替換,并掛載到實例上去之后調(diào)用該鉤子。 數(shù)據(jù)已經(jīng)真實渲染到頁面上 在這個鉤子函數(shù)里面我們可以使用一些第三方的插件
beforeUpdate數(shù)據(jù)更新時調(diào)用,發(fā)生在虛擬DOM打補丁之前。 頁面上數(shù)據(jù)還是舊的
updated由于數(shù)據(jù)更改導(dǎo)致的虛擬DOM重新渲染和打補丁,在這之后會調(diào)用該鉤子。 頁面上數(shù)據(jù)已經(jīng)替換成最新的
beforeDestroy實例銷毀之前調(diào)用
destroyed實例銷毀后調(diào)用

數(shù)組變異方法

  • 在 Vue 中,直接修改對象屬性的值無法觸發(fā)響應(yīng)式。當(dāng)你直接修改了對象屬性的值,你會發(fā)現(xiàn),只有數(shù)據(jù)改了,但是頁面內(nèi)容并沒有改變
  • 變異數(shù)組方法即保持?jǐn)?shù)組方法原有功能不變的前提下對其進(jìn)行功能拓展
push()往數(shù)組最后面添加一個元素,成功返回當(dāng)前數(shù)組的長度
pop()刪除數(shù)組的最后一個元素,成功返回刪除元素的值
shift()刪除數(shù)組的第一個元素,成功返回刪除元素的值
unshift()往數(shù)組最前面添加一個元素,成功返回當(dāng)前數(shù)組的長度
splice()有三個參數(shù),第一個是想要刪除的元素的下標(biāo)(必選),第二個是想要刪除的個數(shù)(必選),第三個是刪除 后想要在原位置替換的值
sort()sort() 使數(shù)組按照字符編碼默認(rèn)從小到大排序,成功返回排序后的數(shù)組
reverse()reverse() 將數(shù)組倒序,成功返回倒序后的數(shù)組

替換數(shù)組

  • 不會改變原始數(shù)組,但總是返回一個新數(shù)組
filterfilter() 方法創(chuàng)建一個新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。
concatconcat() 方法用于連接兩個或多個數(shù)組。該方法不會改變現(xiàn)有的數(shù)組
sliceslice() 方法可從已有的數(shù)組中返回選定的元素。該方法并不會修改數(shù)組,而是返回一個子數(shù)組

動態(tài)數(shù)組響應(yīng)式數(shù)據(jù)

  • Vue.set(a,b,c) 讓 觸發(fā)視圖重新更新一遍,數(shù)據(jù)動態(tài)起來
  • a是要更改的數(shù)據(jù) 、 b是數(shù)據(jù)的第幾項、 c是更改后的數(shù)據(jù)

圖書列表案例

  • 靜態(tài)列表效果
  • 基于數(shù)據(jù)實現(xiàn)模板效果
  • 處理每行的操作按鈕

1、 提供的靜態(tài)數(shù)據(jù)

  • 數(shù)據(jù)存放在vue 中 data 屬性中
var vm = new Vue({el: '#app',data: {books: [{id: 1,name: '三國演義',date: ''},{id: 2,name: '水滸傳',date: ''},{id: 3,name: '紅樓夢',date: ''},{id: 4,name: '西游記',date: ''}]}}); var vm = new Vue({el: '#app',data: {books: [{id: 1,name: '三國演義',date: ''},{id: 2,name: '水滸傳',date: ''},{id: 3,name: '紅樓夢',date: ''},{id: 4,name: '西游記',date: ''}]}});

2、 把提供好的數(shù)據(jù)渲染到頁面上

  • 利用 v-for循環(huán) 遍歷 books 將每一項數(shù)據(jù)渲染到對應(yīng)的數(shù)據(jù)中
<tbody><tr :key='item.id' v-for='item in books'><!-- 對應(yīng)的id 渲染到頁面上 --><td>{{item.id}}</td><!-- 對應(yīng)的name 渲染到頁面上 --><td>{{item.name}}</td><td>{{item.date}}</td><td><!-- 阻止 a 標(biāo)簽的默認(rèn)跳轉(zhuǎn) --><a href="" @click.prevent>修改</a><span>|</span><a href="" @click.prevent>刪除</a></td></tr> </tbody>

3、 添加圖書

  • 通過雙向綁定獲取到輸入框中的輸入內(nèi)容
  • 給按鈕添加點擊事件
  • 把輸入框中的數(shù)據(jù)存儲到 data 中的 books 里面
<div><h1>圖書管理</h1><div class="book"><div><label for="id">編號:</label><!-- 3.1、通過雙向綁定獲取到輸入框中的輸入的 id --><input type="text" id="id" v-model='id'><label for="name">名稱:</label><!-- 3.2、通過雙向綁定獲取到輸入框中的輸入的 name --><input type="text" id="name" v-model='name'><!-- 3.3、給按鈕添加點擊事件 --><button @click='handle'>提交</button></div></div> </div><script type="text/javascript">/*圖書管理-添加圖書*/var vm = new Vue({el: '#app',data: {id: '',name: '',books: [{id: 1,name: '三國演義',date: ''},{id: 2,name: '水滸傳',date: ''},{id: 3,name: '紅樓夢',date: ''},{id: 4,name: '西游記',date: ''}]},methods: {handle: function(){// 3.4 定義一個新的對象book 存儲 獲取到輸入框中 書 的id和名字 var book = {};book.id = this.id;book.name = this.name;book.date = '';// 3.5 把book 通過數(shù)組的變異方法 push 放到 books 里面this.books.push(book);//3.6 清空輸入框this.id = '';this.name = '';}}});</script>

4 修改圖書-上

  • 點擊修改按鈕的時候 獲取到要修改的書籍名單
    • 4.1 給修改按鈕添加點擊事件, 需要把當(dāng)前的圖書的id 傳遞過去 這樣才知道需要修改的是哪一本書籍
  • 把需要修改的書籍名單填充到表單里面
    • 4.2 根據(jù)傳遞過來的id 查出books 中 對應(yīng)書籍的詳細(xì)信息
    • 4.3 把獲取到的信息填充到表單
<div id="app"><div class="grid"><div><h1>圖書管理</h1><div class="book"><div><label for="id">編號:</label><input type="text" id="id" v-model='id' :disabled="flag"><label for="name">名稱:</label><input type="text" id="name" v-model='name'><button @click='handle'>提交</button></div></div></div><table><thead><tr><th>編號</th><th>名稱</th><th>時間</th><th>操作</th></tr></thead><tbody><tr :key='item.id' v-for='item in books'><td>{{item.id}}</td><td>{{item.name}}</td><td>{{item.date}}</td><td><!--- 4.1 給修改按鈕添加點擊事件, 需要把當(dāng)前的圖書的id 傳遞過去 這樣才知道需要修改的是哪一本書籍---> <a href="" @click.prevent='toEdit(item.id)'>修改</a><span>|</span><a href="" @click.prevent>刪除</a></td></tr></tbody></table></div></div><script type="text/javascript">/*圖書管理-添加圖書*/var vm = new Vue({el: '#app',data: {flag: false,id: '',name: '',books: [{id: 1,name: '三國演義',date: ''},{id: 2,name: '水滸傳',date: ''},{id: 3,name: '紅樓夢',date: ''},{id: 4,name: '西游記',date: ''}]},methods: {handle: function(){// 3.4 定義一個新的對象book 存儲 獲取到輸入框中 書 的id和名字 var book = {};book.id = this.id;book.name = this.name;book.date = '';// 3.5 把book 通過數(shù)組的變異方法 push 放到 books 里面this.books.push(book);//3.6 清空輸入框this.id = '';this.name = '';},toEdit: function(id){console.log(id)//4.2 根據(jù)傳遞過來的id 查出books 中 對應(yīng)書籍的詳細(xì)信息var book = this.books.filter(function(item){return item.id == id;});console.log(book)//4.3 把獲取到的信息填充到表單// this.id 和 this.name 通過雙向綁定 綁定到了表單中 一旦數(shù)據(jù)改變視圖自動更新this.id = book[0].id;this.name = book[0].name;}}});</script>

5 修改圖書-下

  • 5.1 定義一個標(biāo)識符, 主要是控制 編輯狀態(tài)下當(dāng)前編輯書籍的id 不能被修改 即 處于編輯狀態(tài)下 當(dāng)前控制書籍編號的輸入框禁用
  • 5.2 通過屬性綁定給書籍編號的 綁定 disabled 的屬性 flag 為 true 即為禁用
  • 5.3 flag 默認(rèn)值為false 處于編輯狀態(tài) 要把 flag 改為true 即當(dāng)前表單為禁用
  • 5.4 復(fù)用添加方法 用戶點擊提交的時候依然執(zhí)行 handle 中的邏輯如果 flag為true 即 表單處于不可輸入狀態(tài) 此時執(zhí)行的用戶編輯數(shù)據(jù)數(shù)據(jù)
<div id="app"><div class="grid"><div><h1>圖書管理</h1><div class="book"><div><label for="id">編號:</label><!-- 5.2 通過屬性綁定 綁定 disabled 的屬性 flag 為 true 即為禁用 --><input type="text" id="id" v-model='id' :disabled="flag"><label for="name">名稱:</label><input type="text" id="name" v-model='name'><button @click='handle'>提交</button></div></div></div><table><thead><tr><th>編號</th><th>名稱</th><th>時間</th><th>操作</th></tr></thead><tbody><tr :key='item.id' v-for='item in books'><td>{{item.id}}</td><td>{{item.name}}</td><td>{{item.date}}</td><td><a href="" @click.prevent='toEdit(item.id)'>修改</a><span>|</span><a href="" @click.prevent>刪除</a></td></tr></tbody></table></div></div> <script type="text/javascript">/*圖書管理-添加圖書*/var vm = new Vue({el: '#app',data: {// 5.1 定義一個標(biāo)識符, 主要是控制 編輯狀態(tài)下當(dāng)前編輯書籍的id 不能被修改 // 即 處于編輯狀態(tài)下 當(dāng)前控制書籍編號的輸入框禁用 flag: false,id: '',name: '',},methods: {handle: function() {/*5.4 復(fù)用添加方法 用戶點擊提交的時候依然執(zhí)行 handle 中的邏輯如果 flag為true 即 表單處于不可輸入狀態(tài) 此時執(zhí)行的用戶編輯數(shù)據(jù)數(shù)據(jù) */ if (this.flag) {// 編輯圖書// 5.5 根據(jù)當(dāng)前的ID去更新數(shù)組中對應(yīng)的數(shù)據(jù) this.books.some((item) => {if (item.id == this.id) {// 箭頭函數(shù)中 this 指向父級作用域的this item.name = this.name;// 完成更新操作之后,需要終止循環(huán)return true;}});// 5.6 編輯完數(shù)據(jù)后表單要處以可以輸入的狀態(tài)this.flag = false;// 5.7 如果 flag為false 表單處于輸入狀態(tài) 此時執(zhí)行的用戶添加數(shù)據(jù) } else { var book = {};book.id = this.id;book.name = this.name;book.date = '';this.books.push(book);// 清空表單this.id = '';this.name = '';}// 清空表單this.id = '';this.name = '';},toEdit: function(id) {/*5.3 flag 默認(rèn)值為false 處于編輯狀態(tài) 要把 flag 改為true 即當(dāng)前表單為禁 用 */ this.flag = true;console.log(id)var book = this.books.filter(function(item) {return item.id == id;});console.log(book)this.id = book[0].id;this.name = book[0].name;}}});</script>

6 刪除圖書

  • 6.1 給刪除按鈕添加事件 把當(dāng)前需要刪除的書籍id 傳遞過來
  • 6.2 根據(jù)id從數(shù)組中查找元素的索引
  • 6.3 根據(jù)索引刪除數(shù)組元素
<tbody><tr :key='item.id' v-for='item in books'><td>{{item.id}}</td><td>{{item.name}}</td><td>{{item.date}}</td><td><a href="" @click.prevent='toEdit(item.id)'>修改</a><span>|</span><!-- 6.1 給刪除按鈕添加事件 把當(dāng)前需要刪除的書籍id 傳遞過來 --> <a href="" @click.prevent='deleteBook(item.id)'>刪除</a></td></tr> </tbody><script type="text/javascript">/*圖書管理-添加圖書*/var vm = new Vue({methods: {deleteBook: function(id){// 刪除圖書#// 6.2 根據(jù)id從數(shù)組中查找元素的索引// var index = this.books.findIndex(function(item){// return item.id == id;// });#// 6.3 根據(jù)索引刪除數(shù)組元素// this.books.splice(index, 1);// -------------------------#// 方法二:通過filter方法進(jìn)行刪除# 6.4 根據(jù)filter 方法 過濾出來id 不是要刪除書籍的id # 因為 filter 是替換數(shù)組不會修改原始數(shù)據(jù) 所以需要 把 不是要刪除書籍的id 賦值給 books this.books = this.books.filter(function(item){return item.id != id;});}}});</script>

常用特性應(yīng)用場景

1 過濾器

  • Vue.filter 定義一個全局過濾器
<tr :key='item.id' v-for='item in books'><td>{{item.id}}</td><td>{{item.name}}</td><!-- 1.3 調(diào)用過濾器 --><td>{{item.date | format('yyyy-MM-dd hh:mm:ss')}}</td><td><a href="" @click.prevent='toEdit(item.id)'>修改</a><span>|</span><a href="" @click.prevent='deleteBook(item.id)'>刪除</a></td> </tr><script>#1.1 Vue.filter 定義一個全局過濾器Vue.filter('format', function(value, arg) {function dateFormat(date, format) {if (typeof date === "string") {var mts = date.match(/(\/Date\((\d+)\)\/)/);if (mts && mts.length >= 3) {date = parseInt(mts[2]);}}date = new Date(date);if (!date || date.toUTCString() == "Invalid Date") {return "";}var map = {"M": date.getMonth() + 1, //月份 "d": date.getDate(), //日 "h": date.getHours(), //小時 "m": date.getMinutes(), //分 "s": date.getSeconds(), //秒 "q": Math.floor((date.getMonth() + 3) / 3), //季度 "S": date.getMilliseconds() //毫秒 };format = format.replace(/([yMdhmsqS])+/g, function(all, t) {var v = map[t];if (v !== undefined) {if (all.length > 1) {v = '0' + v;v = v.substr(v.length - 2);}return v;} else if (t === 'y') {return (date.getFullYear() + '').substr(4 - all.length);}return all;});return format;}return dateFormat(value, arg);}) #1.2 提供的數(shù)據(jù) 包含一個時間戳 為毫秒數(shù)[{id: 1,name: '三國演義',date: 2525609975000},{id: 2,name: '水滸傳',date: 2525609975000},{id: 3,name: '紅樓夢',date: 2525609975000},{id: 4,name: '西游記',date: 2525609975000}]; </script>

2 自定義指令

  • 讓表單自動獲取焦點
  • 通過Vue.directive 自定義指定
<!-- 2.2 通過v-自定義屬性名 調(diào)用自定義指令 --> <input type="text" id="id" v-model='id' :disabled="flag" v-focus><script># 2.1 通過Vue.directive 自定義指定Vue.directive('focus', {inserted: function (el) {el.focus();}});</script>

3 計算屬性

  • 通過計算屬性計算圖書的總數(shù)
    • 圖書的總數(shù)就是計算數(shù)組的長度
<div class="total"><span>圖書總數(shù):</span><!-- 3.2 在頁面上 展示出來 --><span>{{total}}</span> </div><script type="text/javascript">/*計算屬性與方法的區(qū)別:計算屬性是基于依賴進(jìn)行緩存的,而方法不緩存*/var vm = new Vue({data: {flag: false,submitFlag: false,id: '',name: '',books: []},computed: {total: function(){// 3.1 計算圖書的總數(shù)return this.books.length;}},});</script>

生命周期

案例代碼

<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><title>Document</title><style type="text/css">.grid {margin: auto;width: 530px;text-align: center;}.grid table {border-top: 1px solid #C2D89A;width: 100%;border-collapse: collapse;}.grid th,td {padding: 10;border: 1px dashed #F3DCAB;height: 35px;line-height: 35px;}.grid th {background-color: #F3DCAB;}.grid .book {padding-bottom: 10px;padding-top: 5px;background-color: #F3DCAB;}.grid .total {height: 30px;line-height: 30px;background-color: #F3DCAB;border-top: 1px solid #C2D89A;}</style> </head><body><div id="app"><div class="grid"><div><h1>圖書管理</h1><div class="book"><div><label for="id">編號:</label><input type="text" id="id" v-model='id' :disabled="flag" v-focus><label for="name">名稱:</label><input type="text" id="name" v-model='name'><button @click='handle' :disabled="submitFlag">提交</button></div></div></div><div class="total"><span>圖書總數(shù):</span><span>{{total}}</span></div><table><thead><tr><th>編號</th><th>名稱</th><th>時間</th><th>操作</th></tr></thead><tbody><tr :key='item.id' v-for='item in books'><td>{{item.id}}</td><td>{{item.name}}</td><td>{{item.date | format('yyyy-MM-dd hh:mm:ss')}}</td><td><a href="" @click.prevent='toEdit(item.id)'>修改</a><span>|</span><a href="" @click.prevent='deleteBook(item.id)'>刪除</a></td></tr></tbody></table></div></div><script type="text/javascript" src="js/vue.js"></script><script type="text/javascript">/*圖書管理-添加圖書*/Vue.directive('focus', {inserted: function (el) {el.focus();}});Vue.filter('format', function (value, arg) {function dateFormat(date, format) {if (typeof date === "string") {var mts = date.match(/(\/Date\((\d+)\)\/)/);if (mts && mts.length >= 3) {date = parseInt(mts[2]);}}date = new Date(date);if (!date || date.toUTCString() == "Invalid Date") {return "";}var map = {"M": date.getMonth() + 1, //月份 "d": date.getDate(), //日 "h": date.getHours(), //小時 "m": date.getMinutes(), //分 "s": date.getSeconds(), //秒 "q": Math.floor((date.getMonth() + 3) / 3), //季度 "S": date.getMilliseconds() //毫秒 };format = format.replace(/([yMdhmsqS])+/g, function (all, t) {var v = map[t];if (v !== undefined) {if (all.length > 1) {v = '0' + v;v = v.substr(v.length - 2);}return v;} else if (t === 'y') {return (date.getFullYear() + '').substr(4 - all.length);}return all;});return format;}return dateFormat(value, arg);})var vm = new Vue({el: '#app',data: {flag: false,submitFlag: false,id: '',name: '',books: []},methods: {handle: function () {if (this.flag) {// 編輯圖書// 就是根據(jù)當(dāng)前的ID去更新數(shù)組中對應(yīng)的數(shù)據(jù)this.books.some((item) => {if (item.id == this.id) {item.name = this.name;// 完成更新操作之后,需要終止循環(huán)return true;}});this.flag = false;} else {// 添加圖書var book = {};book.id = this.id;book.name = this.name;book.date = 2525609975000;this.books.push(book);// 清空表單this.id = '';this.name = '';}// 清空表單this.id = '';this.name = '';},toEdit: function (id) {// 禁止修改IDthis.flag = true;console.log(id)// 根據(jù)ID查詢出要編輯的數(shù)據(jù)var book = this.books.filter(function (item) {return item.id == id;});console.log(book)// 把獲取到的信息填充到表單this.id = book[0].id;this.name = book[0].name;},deleteBook: function (id) {// 刪除圖書// 根據(jù)id從數(shù)組中查找元素的索引// var index = this.books.findIndex(function(item){// return item.id == id;// });// 根據(jù)索引刪除數(shù)組元素// this.books.splice(index, 1);// -------------------------// 方法二:通過filter方法進(jìn)行刪除this.books = this.books.filter(function (item) {return item.id != id;});}},computed: {total: function () {// 計算圖書的總數(shù)return this.books.length;}},watch: {name: function (val) {// 驗證圖書名稱是否已經(jīng)存在var flag = this.books.some(function (item) {return item.name == val;});if (flag) {// 圖書名稱存在this.submitFlag = true;} else {// 圖書名稱不存在this.submitFlag = false;}}},mounted: function () {// 該生命周期鉤子函數(shù)被觸發(fā)的時候,模板已經(jīng)可以使用// 一般此時用于獲取后臺數(shù)據(jù),然后把數(shù)據(jù)填充到模板var data = [{id: 1,name: '三國演義',date: 2525609975000}, {id: 2,name: '水滸傳',date: 2525609975000}, {id: 3,name: '紅樓夢',date: 2525609975000}, {id: 4,name: '西游記',date: 2525609975000}];this.books = data;}});</script> </body></html>

總結(jié)

以上是生活随笔為你收集整理的vue-day02-vue常用特性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

91麻豆精品国产自产在线 | 福利视频网站 | 久久综合网色—综合色88 | 黄色1级毛片 | 91在线porny国产在线看 | 色综合亚洲精品激情狠狠 | 亚洲欧洲精品一区二区精品久久久 | 天天摸天天操天天舔 | 久久免费黄色大片 | 91精彩在线视频 | 在线免费观看av网站 | 超碰97中文 | 一区二区国产精品 | 激情综合色综合久久综合 | 国产91在线免费视频 | 91色偷偷 | 亚洲高清精品在线 | 一区二区三区四区五区六区 | 一级一片免费看 | 亚州精品一二三区 | 99国产精品免费网站 | 亚洲激情在线观看 | 精品国产乱码久久久久久浪潮 | 国产精品乱码一区二三区 | 天天插日日操 | 欧美一区二区三区在线播放 | 91丨九色丨首页 | 91字幕| 久草在线高清视频 | 亚洲一区二区精品3399 | 91亚洲精品久久久蜜桃 | 中文字幕在线色 | 日韩网站在线 | 国产在线观看a | 9色在线视频| 草久久影院 | 手机成人免费视频 | 久久中文字幕导航 | 91网址在线观看 | 国产成人综合精品 | 97超碰在线久草超碰在线观看 | 亚洲精品在线观看网站 | 国产亚洲日本 | 国产精品黑丝在线观看 | 欧美在线a视频 | 蜜臀av麻豆 | 91九色网站 | 久久久久97国产 | 久久久色| 久草视频免费 | av成人在线播放 | 日韩在线精品视频 | 最近中文字幕完整高清 | 日韩女同一区二区三区在线观看 | 黄色的片子 | 中文字幕在线久一本久 | 天天色天天干天天色 | 欧美日韩国产综合网 | 国语自产偷拍精品视频偷 | 碰超在线 | 国产精品嫩草影院9 | 国产亚洲一区二区在线观看 | 日韩免费网址 | 一本一道久久a久久精品 | 亚洲三级av| 手机av在线网站 | 午夜私人影院 | 欧美在线视频精品 | 国产女人18毛片水真多18精品 | 国产精品久久久久毛片大屁完整版 | www91在线观看 | 在线观看的a站 | 日韩欧美在线观看一区二区 | 99久免费精品视频在线观看 | 午夜精品久久久久 | 97视频免费在线 | 久久精品亚洲一区二区三区观看模式 | 最近更新好看的中文字幕 | 夜夜操天天干, | 狠日日| 欧美精品视 | 成人av一级片| 亚洲精品国久久99热 | 2019中文最近的2019中文在线 | 在线观看视频日韩 | 99视频精品视频高清免费 | 狠狠综合网 | 综合网久久 | 综合婷婷久久 | 网站免费黄色 | 日韩不卡高清 | 久久国产精品电影 | 国产精品大尺度 | 中文字幕有码在线播放 | 国产日韩欧美在线观看视频 | 99久久一区 | 天天干亚洲| aaa免费毛片 | 69亚洲视频 | 中文区中文字幕免费看 | 亚洲国产合集 | 久久久久免费精品 | 99在线视频免费观看 | 一本色道久久综合亚洲二区三区 | 超级av在线| 91黄色小网站 | 在线天堂中文www视软件 | 探花视频免费观看高清视频 | 免费一级片久久 | 6080yy精品一区二区三区 | 久操97 | 一级a性色生活片久久毛片波多野 | 激情婷婷综合网 | 国产精品视频久久久 | 国产精品一区二区免费视频 | 日韩精品一区二区三区三炮视频 | 成人播放器 | 蜜臀久久99精品久久久无需会员 | 一级久久精品 | 日韩在线观看一区二区 | 久久国产精品区 | 综合网五月天 | 一区二区三区免费 | 亚洲精品美女久久久久网站 | 国产精品激情在线观看 | 色综合天天 | 成人免费视频a | 欧美一区影院 | 精品毛片一区二区免费看 | 久久久久一区二区三区四区 | 天堂va在线观看 | 激情综合五月网 | 在线日韩av | 色视频在线免费 | 青草视频在线 | 五月婷婷六月丁香 | 国产视频91在线 | 久精品视频在线 | 久久精品xxx | 国产做爰视频 | 97超碰色偷偷 | 久久久高清免费视频 | 欧美国产日韩在线观看 | 综合激情伊人 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 日本黄色免费大片 | 日韩欧美精品免费 | 夜夜操天天摸 | 99热国产在线中文 | 日日婷婷夜日日天干 | 国产成人精品久 | 91视频电影| 久久免费视频2 | 99久久久久久久 | 美女黄濒 | 在线观看中文字幕av | 国产69精品久久99的直播节目 | 亚洲资源在线网 | 麻豆国产精品一区二区三区 | 96久久欧美麻豆网站 | 亚洲视频一 | 欧美在线视频a | 日本动漫做毛片一区二区 | 夜夜摸夜夜爽 | 十八岁以下禁止观看的1000个网站 | 久久精品这里精品 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 久久精品五月 | 成年人免费在线观看网站 | 午夜体验区 | 日日骑 | 美女福利视频 | 国产精品第二页 | 国产精品高 | 中文字幕无吗 | 日韩中文在线视频 | 国产精品1区2区 | 欧美va天堂va视频va在线 | 日韩精品一区二区三区视频播放 | 999免费视频 | 美女福利视频一区二区 | 日本爱爱免费视频 | 在线看片成人 | 激情视频久久 | 一级做a视频 | 久久伦理影院 | 亚洲一二区视频 | 2000xxx影视 | 91精品在线播放 | 亚洲理论电影网 | 免费看黄的 | 日韩r级电影在线观看 | 黄a网| 亚洲一区二区精品在线 | 伊人射| 日本69hd | 亚洲成人999 | 亚洲精品麻豆 | 日韩欧美精品在线 | 国产精品原创av片国产免费 | 免费污片 | 青青河边草免费观看完整版高清 | 成人一级片在线观看 | 久久社区视频 | 国产网红在线观看 | 99热在线免费观看 | 国产在线一线 | 国产精品成人一区二区三区吃奶 | 91av精品 | 色婷婷播放| 中文字幕在线不卡国产视频 | 天天干天天天天 | 日本黄色大片免费看 | av动态图片 | 国产大尺度视频 | 日韩中文字幕视频在线观看 | 久久久久99精品国产片 | 成人av教育| 99免费在线观看 | 久久久受www免费人成 | 久产久精国产品 | 视频一区二区精品 | 在线天堂中文www视软件 | 亚洲欧美怡红院 | 国产一区二区在线视频观看 | av片在线看 | 香蕉视频色 | 一级片免费观看视频 | 久久蜜桃av| 日韩黄色一级电影 | 亚洲少妇久久 | 精品国产一区二区三区蜜臀 | 国产品久精国精产拍 | 日韩欧美视频免费看 | 91超级碰| 精品久久久久久国产91 | 久久免费成人 | 欧美极品少妇xbxb性爽爽视频 | 色开心 | 九九九九九精品 | 九九导航 | 精品视频9999 | 日韩视频中文字幕 | 99精品免费在线 | 色偷偷网站视频 | 久久综合综合久久综合 | 日本久久中文字幕 | 国产成人精品久 | 中文字幕丝袜一区二区 | 国产三级国产精品国产专区50 | 日韩在线视频网 | 日韩av电影中文字幕在线观看 | 亚洲1级片 | 亚洲高清视频在线 | 日韩欧美第二页 | 最新中文字幕视频 | 天天干人人干 | 亚洲成人精品久久久 | 97在线观看视频国产 | 男女啪啪视屏 | 国产高清综合 | 最近的中文字幕大全免费版 | 国产在线v| 国产成视频在线观看 | 午夜久久久久久久久久久 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 欧美亚洲成人xxx | 久久精品久久99精品久久 | 日本中文字幕在线观看 | 超级碰99| 成人中文字幕+乱码+中文字幕 | 91在线视频免费 | 91在线视频免费观看 | 免费日韩av电影 | 国内精品久久久久久久久 | 最近免费中文视频 | 美女视频永久黄网站免费观看国产 | 国产精品第一页在线观看 | 一区二区三区在线播放 | 高清不卡一区二区在线 | 久久久久国产精品午夜一区 | 久久五月情影视 | 美女黄视频免费 | 又黄又爽的视频在线观看网站 | 日韩动态视频 | 999国内精品永久免费视频 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 久久亚洲欧美日韩精品专区 | 成年人视频免费在线播放 | 成人久久18免费网站图片 | 日本性高潮视频 | 免费在线国产精品 | 天堂网av 在线 | 日本精品久久久一区二区三区 | 国产免费xvideos视频入口 | 我爱av激情网 | 一区二区三区免费网站 | 欧美精品一区在线 | 激情在线免费视频 | 欧美日韩不卡一区二区 | 激情五月婷婷综合网 | 免费看污黄网站 | 国产成人av在线影院 | 日本精品视频在线观看 | 中文字幕在线播放av | 日韩欧美一区二区三区黑寡妇 | 欧美日本不卡高清 | 亚洲综合成人av | 亚洲电影图片小说 | 国产精品女同一区二区三区久久夜 | 国产96av| 在线观看黄色 | 综合久久网站 | 在线观看你懂的网站 | 人人爱天天操 | 五月天综合色激情 | 国产精品99久久久久久久久久久久 | 美国av大片| 手机av片| 中文字幕在线有码 | 日韩黄色中文字幕 | 九九在线播放 | 国产精品久久久久久久久免费看 | 国产精品美女久久久 | 狠狠久久综合 | 国产 字幕 制服 中文 在线 | 久99热| 久一在线 | av高清一区 | 国产日韩欧美在线观看视频 | 亚洲精品动漫久久久久 | 久久婷五月 | 丝袜美腿亚洲综合 | 久久最新 | 亚洲在线成人精品 | 97在线免费观看视频 | 日韩免费大片 | 看片黄网站 | 亚洲va欧洲va国产va不卡 | 国产一区二区免费在线观看 | 高潮毛片无遮挡高清免费 | 欧美性生活一级片 | 91九色在线视频观看 | 在线影院中文字幕 | 精品国产免费人成在线观看 | 99精品亚洲| 五月婷婷电影网 | 波多野结衣在线观看一区二区三区 | 日本电影久久 | 激情久久伊人 | 国产精品一区二区久久 | 18女毛片| 在线中文字幕一区二区 | 日韩av影视 | 成人国产精品一区二区 | 在线观看免费国产小视频 | 天天色宗合 | 久久99久久99免费视频 | 亚洲免费色 | 精品国产一二三四区 | 成人午夜网址 | 亚洲第一区在线播放 | 99在线视频观看 | 欧美一区二区在线 | 毛片无卡免费无播放器 | 九色自拍视频 | 日韩二区三区 | 中文字幕av最新 | 国内成人av| 亚洲精品视频在线看 | 国产精品久久久久久久久久直播 | 精品久久久久久国产 | 欧美成人手机版 | 九九爱免费视频在线观看 | 国产高h视频 | 成片视频免费观看 | 国产精品va在线 | 免费观看av | 日日草天天干 | 久久久久成人精品亚洲国产 | 久热av | 亚洲免费av一区二区 | av中文字幕网 | 成人黄色电影在线播放 | 精品99视频 | 一级大片在线观看 | 一区免费视频 | 欧美日韩一区二区三区视频 | 天天操天天谢 | 日韩欧美一区二区三区在线 | 丁香五月亚洲综合在线 | 99超碰在线播放 | 久久成人在线 | 区一区二区三区中文字幕 | 91在线文字幕 | 天天射天天搞 | 中文字幕三区 | 国产精品成人在线 | 五月天综合 | 久久视频在线视频 | 精品国产91亚洲一区二区三区www | 亚洲国产mv | 色wwww| av免费网站在线观看 | 91精品国产综合久久久久久久 | 天天碰天天操视频 | 欧美日韩电影在线播放 | 97精品国产97久久久久久 | 日本电影久久 | 中文字幕在线第一页 | 又黄又爽又刺激的视频 | 国产大陆亚洲精品国产 | 欧美日韩xxx| 成人少妇影院yyyy | 激情综合亚洲 | 色91在线视频 | 手机在线小视频 | 欧美激情精品久久久久久变态 | 国产亚洲精品日韩在线tv黄 | 91亚洲网 | 国产精品一区二区美女视频免费看 | av中文字幕av | 天天摸天天操天天舔 | 新av在线| 免费av观看网站 | 黄色大片日本免费大片 | 午夜在线免费观看视频 | 福利视频午夜 | 亚洲国产小视频在线观看 | .国产精品成人自产拍在线观看6 | 综合色综合色 | 99久久99视频只有精品 | 深爱五月激情五月 | 91av成人 | 一区二区三区免费在线观看视频 | 一区二区成人国产精品 | 99精彩视频在线观看免费 | 97视频在线观看播放 | 国产综合福利在线 | 国产手机在线观看视频 | 亚洲成av人片在线观看www | 免费观看一级特黄欧美大片 | 久久全国免费视频 | 久久精品视频免费观看 | 国产又黄又爽无遮挡 | 欧美日本中文字幕 | 欧美日韩免费一区 | 国产精品对白一区二区三区 | 日韩欧美一区二区三区在线观看 | 一级a性色生活片久久毛片波多野 | 99视频99| 国产精品女视频 | 亚洲成色777777在线观看影院 | 国产精品久久99精品毛片三a | 欧美性爽爽 | 在线观看视频在线观看 | 超碰人在线 | 国产高清视频在线播放一区 | 中文字幕亚洲欧美日韩2019 | 九草视频在线观看 | 91人人爽久久涩噜噜噜 | 又黄又爽又湿又无遮挡的在线视频 | 精品国产伦一区二区三区观看方式 | 久久99久久99精品免观看软件 | 色综合久久久久综合99 | 在线影院中文字幕 | 国产韩国精品一区二区三区 | 手机成人在线电影 | 久久刺激视频 | 6699私人影院 | 97精品视频在线 | 国产淫片免费看 | av中文在线影视 | 婷婷色影院 | 亚洲在线资源 | 国产一级视频在线观看 | 久久综合婷婷综合 | 国产高清精品在线观看 | 国产一区二区在线视频观看 | 成人av在线影视 | 超碰电影在线观看 | 免费看特级毛片 | 久久久久久网址 | 97人人澡人人爽人人模亚洲 | 成人久久18免费网站图片 | zzijzzij亚洲成熟少妇 | 麻豆 videos | 久久久久久高潮国产精品视 | 69av在线播放| 久久免费在线视频 | 国产国产人免费人成免费视频 | 久久大香线蕉app | 黄色毛片一级片 | 亚洲免费永久精品国产 | 国产精品一区二区久久久久 | 国产一区成人在线 | 国产福利精品在线观看 | 免费在线91 | av在线电影免费观看 | 国产黄色精品视频 | 国产精品毛片久久蜜 | 精品国产一二三 | 天天草天天摸 | 人人澡av| 日韩免费在线一区 | 免费看搞黄视频网站 | 亚洲精品成人av在线 | 天堂av高清 | 字幕网av| 精品国产乱码 | 亚洲一二三在线 | 视频二区在线 | 中文字幕最新精品 | 欧美精品xxx | 深爱开心激情网 | 国产成人在线看 | 免费日韩电影 | 国产精品久久久 | 欧美精品乱码久久久久久 | 国产剧情在线一区 | 日韩一区二区三区高清在线观看 | 99久久99 | 在线中文字幕av观看 | 亚洲精品国精品久久99热一 | 亚洲三级在线免费观看 | 私人av| 国产麻豆电影 | 久久久亚洲精华液 | 成人免费观看a | 1024在线看片 | 欧美视频不卡 | 六月丁香婷 | 色婷婷综合在线 | 在线免费高清视频 | 麻豆91在线观看 | 九九综合久久 | 欧美另类亚洲 | 国产伦精品一区二区三区… | 久久久久久久久久久影视 | 日韩网站视频 | 人人插人人做 | 天天操 夜夜操 | 91片在线观看 | 国产午夜精品一区 | 成人av影视在线 | 久久99日韩 | 欧美人体xx | 精品国产_亚洲人成在线 | 麻豆久久一区 | 在线观看香蕉视频 | 激情av在线资源 | 欧美色道 | 超碰最新网址 | 欧美人牲 | 一区二区三区动漫 | 黄污网站在线 | 亚洲va欧美va人人爽春色影视 | 中文字幕电影网 | 最新国产精品久久精品 | 中文字幕人成不卡一区 | 久久国产一区二区三区 | 久久国产视屏 | 日韩成人av在线 | 热久久视久久精品18亚洲精品 | 狠狠色狠狠色综合系列 | 激情五月伊人 | 婷婷色中文字幕 | 天天做天天爱天天爽综合网 | 欧美成人精品欧美一级乱 | 欧美精品久久久久久 | 婷婷综合网 | 又黄又爽又色无遮挡免费 | 国产一区网址 | 国产精品免费观看国产网曝瓜 | 久久精品草 | 午夜精品一二区 | 日本天天色 | 久久久久久久久久福利 | 精品国产精品久久一区免费式 | 国产一区二区在线免费观看 | 国产91aaa| 激情婷婷六月 | 日韩不卡高清 | 808电影| 九九热精品视频在线播放 | 狠狠88综合久久久久综合网 | 日韩大片在线观看 | 久草在线国产 | 91亚色免费视频 | 色婷婷av一区 | 国产视频一区在线免费观看 | a√国产免费a | 五月天综合| 77国产精品| 麻豆视频在线观看 | 国产日韩精品一区二区三区在线 | 国产一级视频免费看 | 91一区啪爱嗯打偷拍欧美 | 免费看国产视频 | 美女网站在线看 | 蜜臀av夜夜澡人人爽人人 | 在线播放日韩 | 成人综合免费 | 伊人开心激情 | 天干啦夜天干天干在线线 | 成人性生活大片 | 人人看人人 | 一区二区三区在线观看 | 国产中的精品av小宝探花 | 欧美精品久久久久久久久久白贞 | 狠狠色丁香婷婷综合 | 亚洲乱亚洲乱亚洲 | 99免费在线播放99久久免费 | 2019中文最近的2019中文在线 | 久久久久久久福利 | 久久久久福利视频 | 国产资源站 | 狠色狠色综合久久 | 色网站黄 | 91精选在线| 在线观看亚洲免费视频 | 日韩首页 | 久久综合久久综合九色 | 欧美大片aaa | 黄色软件在线观看 | 国产综合精品一区二区三区 | 色婷婷av在线 | 久久www免费人成看片高清 | 97香蕉超级碰碰久久免费软件 | 久草资源免费 | a在线免费观看视频 | 日韩电影在线一区二区 | 视频一区二区三区视频 | 久9在线| 最新av在线播放 | 亚洲人成在| 男女激情麻豆 | 欧美日韩国产区 | 久久精品国产亚洲a | 欧美国产日韩中文 | www.啪啪.com| 一区二区精品在线观看 | 久久激五月天综合精品 | 日韩中文字幕免费视频 | 麻豆国产视频 | 91精品国产91久久久久 | 成人不用播放器 | 久久在线电影 | 国产69精品久久久久久久久久 | 在线黄色毛片 | www.天天色.com| 欧美十八 | 日韩精品一区二区免费 | 国产麻豆精品一区二区 | 国产精品国产三级国产 | 97网| 精品国产乱码久久久久久1区二区 | 香蕉网址| 日韩一区二区三区视频在线 | 国产女做a爱免费视频 | 波多野结衣动态图 | 国产网红在线 | 成人免费一区二区三区在线观看 | 亚洲精品在线观看av | 日韩免费观看一区二区 | 91av资源在线 | 日韩午夜在线观看 | 免费看片网站91 | 日三级在线 | 国产一区二区三区免费在线观看 | 免费网站在线观看成人 | 欧美地下肉体性派对 | 99国产精品久久久久久久久久 | 国产精品久久久久久久久久三级 | 久久免费国产精品1 | 好看av在线 | 久久久久久久精 | 亚洲六月丁香色婷婷综合久久 | 午夜av在线播放 | 欧美99精品 | 日日夜夜噜 | 国产精品99久久久久久人免费 | 精品国产区在线 | 精品久久久久久综合日本 | 成人在线观看免费视频 | 日韩精品播放 | 天天干婷婷 | 天天操欧美 | 午夜av免费 | 91九色蝌蚪国产 | 激情综合啪啪 | 欧美作爱视频 | 日日夜夜免费精品 | 久久不射电影院 | 国产亚洲欧洲 | 久久久久五月天 | 人人爽人人爽人人爽 | 亚洲一级片在线看 | 91精品推荐| 国产视频一二三 | 婷婷色在线 | aav在线| 玖玖玖国产精品 | 视频二区 | 免费麻豆| 免费h在线观看 | 久久久久国产成人精品亚洲午夜 | 91视频xxxx| 免费在线h| 在线色吧 | 五月激情站 | 欧美性色综合 | 久久免费视频5 | www.黄色在线 | 欧美特一级 | 射九九| 一级黄色大片在线观看 | 国产精品高潮呻吟久久久久 | 我要色综合天天 | 欧美性网站 | 亚洲高清视频一区二区三区 | 成人a视频在线观看 | 亚洲欧洲在线视频 | 国产亚洲情侣一区二区无 | 久久久久久久久久久久久国产精品 | 91亚色在线观看 | 日韩一区二区三区在线看 | 69亚洲精品 | 国产视频精选 | 亚洲精品中文字幕在线 | 国产精品乱码久久 | 久久国产色 | 日韩av在线不卡 | 日韩av中文在线观看 | 视频 天天草 | av一级片在线观看 | 日韩欧美视频二区 | 婷婷在线视频 | 91高清一区 | 亚洲精品大片www | 九色福利视频 | 亚洲经典视频 | 五月天狠狠操 | 91亚洲精品久久久中文字幕 | 亚洲精品免费在线观看 | 午夜视频免费 | 天天躁日日躁狠狠躁 | 成人动漫一区二区三区 | 99精品国产99久久久久久97 | 17videosex性欧美 | 亚洲专区一二三 | 久久精品三 | 欧美五月婷婷 | 亚洲综合欧美精品电影 | 欧美日韩免费看 | 国产精品一区在线播放 | 亚洲五月综合 | 黄色软件在线观看 | 91视频 - v11av| 国产成人在线免费观看 | 午夜精品久久久久久久久久久 | 免费在线观看日韩 | 激情小说网站亚洲综合网 | 99re久久精品国产 | 一区二区三区手机在线观看 | 亚洲精品在线播放视频 | 午夜黄色 | 国产麻豆精品一区二区 | 久草视频观看 | 国产精品久久久久久久婷婷 | 黄色免费网站大全 | 三上悠亚一区二区在线观看 | 日韩中午字幕 | 国产精品一区在线观看 | 草久在线| 天天爽夜夜爽精品视频婷婷 | 亚洲国产丝袜在线观看 | 男女拍拍免费视频 | 国产精品午夜久久 | 亚洲精品视频免费在线 | 日本精品视频在线播放 | 亚洲综合视频在线播放 | 最近中文字幕高清字幕在线视频 | 五月丁婷婷 | 久久亚洲精品电影 | 97人人艹| 成人一级影视 | 午夜美女网站 | 天天操天天干天天操天天干 | 一本一本久久a久久精品综合小说 | 久久精品爱爱视频 | 国产成人61精品免费看片 | 久久久久久久综合色一本 | 午夜电影久久 | 婷婷六月色 | 久久人人插 | 日韩欧美一区视频 | av+在线播放在线播放 | 91重口视频 | 99re热精品视频 | 成人国产精品免费 | 亚洲黄色片一级 | av电影免费在线看 | 国产99久久99热这里精品5 | 操久久免费视频 | 国产日韩欧美自拍 | 亚洲欧美成人在线 | 福利av在线 | 99在线播放 | 黄色电影小说 | 欧美日韩不卡一区 | 手机看片福利 | 一区在线观看视频 | 日日操夜 | 欧美日韩亚洲第一 | 欧美日韩国产二区 | 99欧美| 国产麻豆精品久久一二三 | 丁香久久五月 | 国产精品美 | 欧美日韩在线观看视频 | 成人久久久久久久久久 | 免费成人短视频 | 色视频网站免费观看 | 色天天综合久久久久综合片 | 8x成人在线 | 人人玩人人添人人澡97 | 国产区精品区 | 天天激情在线 | 国产色网站 | 97超碰免费在线观看 | 免费在线国产视频 | 国产一区二区三区免费在线观看 | 激情久久网 | 久久精品毛片 | 欧美福利视频 | 天天操操 | 欧美成人区 | 精品国产一区二区三区在线 | 国产日韩在线播放 | 999久久久欧美日韩黑人 | 超级碰99| 在线免费色 | 国产精品成人一区二区三区 | 色综合久久久久 | av电影不卡| wwwwww色| 国产色a在线观看 | 五月色综合| 日韩一级电影在线 | 国产一区国产二区在线观看 | 亚洲国产日韩av | 欧美精品在线观看免费 | 久久久国产精品人人片99精片欧美一 | 中文字幕在线观看国产 | av一级在线| av中文在线 | 国产精品久久久久久久毛片 | 日本韩国精品一区二区在线观看 | 色香com. | 97色在线视频 | 精品人人爽| 天天射天天做 | 免费在线观看国产精品 | 午夜精品一区二区三区在线播放 | 色婷婷久久久综合中文字幕 | av国产网站| 亚洲热久久| 91麻豆精品一区二区三区 | 成人av电影免费观看 | av天天在线观看 | 白丝av免费观看 | 色爱成人网| 免费在线中文字幕 | 久久中文精品视频 | 天天天天天天干 | 免费成人av网站 | 国产黄色美女 | 69久久久久久久 | 欧美激情视频一二区 | 国产不卡视频在线播放 | 国产高清精品在线观看 | 婷婷免费视频 | 亚洲国产日韩在线 | 亚洲一区免费在线 | 免费观看av | 久久精品国产一区二区三区 | 免费在线国产视频 | 国产精品激情偷乱一区二区∴ | 国产超碰在线观看 | 99久久精品国产系列 | 丝袜制服综合网 | 日韩专区中文字幕 | 五月婷在线 | 国产xx在线 | 激情导航| 日日日爽爽爽 | 天堂v中文 | 国产黄色一级片在线 | 久久久国产一区二区三区四区小说 | www久久99| 日日夜夜天天干 | 欧美疯狂性受xxxxx另类 | 在线看国产日韩 | 久久久色| 国内精品久久久久久久97牛牛 | 综合天堂av久久久久久久 | 天天色天天骑天天射 | 国产视频久 | 日韩精品免费在线视频 | 在线视频一二区 | 久久免费国产视频 | 99久国产| 精品久久福利 | 久久视奸| 色吊丝在线永久观看最新版本 | 亚洲天堂毛片 | 美女黄频视频大全 | 亚洲三级毛片 | 狠狠操天天射 | 久久精品一区八戒影视 | 国产福利91精品一区二区三区 | 91麻豆看国产在线紧急地址 | 亚洲精品国产视频 | 久久精品综合视频 | 久久av电影| a级片久久久 | 人人干天天射 | 日日夜夜操操操操 | 日日夜夜天天久久 | 国产视频精品久久 | 免费看的av片 | 91亚洲精品久久久蜜桃 | 91av网址| 在线你懂| 欧美日韩一级久久久久久免费看 | 亚洲综合色视频在线观看 | 国产传媒中文字幕 | 伊人天天狠天天添日日拍 | 国产免费叼嘿网站免费 | 国产高清视频网 | 国产亚洲永久域名 | 日本天天色 | 久久综合久久综合这里只有精品 | 久草在线在线 | 成人精品国产 | 五月婷婷视频在线 | 女人18精品一区二区三区 | 成人国产网站 | 日韩 国产 | 中文字幕在线第一页 | 99久久激情 | 中文字幕日韩无 | 六月婷婷久香在线视频 | 最新超碰在线 | 99热在线国产 | 国产va饥渴难耐女保洁员在线观看 | 欧美日韩二三区 | 久久艹艹 | 五月婷婷视频在线观看 | 91你懂的| 九九在线国产视频 | 婷婷精品国产一区二区三区日韩 | 成人av高清 | 国产一区二区播放 | 99热免费在线 | 亚州精品在线视频 | 欧美午夜一区二区福利视频 | 夜夜操天天 | 人人揉人人揉人人揉人人揉97 | 992tv在线| 日韩av区 | 亚洲美女免费精品视频在线观看 | 日韩欧美一级二级 | 天天操天天干天天操天天干 | 欧美日韩一区二区在线 | 综合铜03| 中文资源在线播放 | 亚洲手机av | 久久精品男人的天堂 | 亚洲影视九九影院在线观看 | 涩涩成人在线 | 欧美性爽爽| 国产免费观看高清完整版 | 97视频免费观看 | 国产中文字幕在线观看 | 国产一区二区午夜 | 美女黄濒 | 久久精品视频99 | 国产黄色av | 波多野结衣在线观看一区二区三区 | 国产手机在线精品 | 人人爽人人av | 黄p网站在线观看 | 波多野结衣视频一区 | 午夜视频黄| 国产中文字幕亚洲 | avsex|