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

歡迎訪問 生活随笔!

生活随笔

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

vue

尚硅谷Vue2.0+Vue3.0全套教程视频笔记 + 代码 [P101-135]

發(fā)布時(shí)間:2023/12/31 vue 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 尚硅谷Vue2.0+Vue3.0全套教程视频笔记 + 代码 [P101-135] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?視頻鏈接:尚硅谷Vue2.0+Vue3.0全套教程丨vuejs從入門到精通_嗶哩嗶哩_bilibili


P1-50:尚硅谷Vue2.0+Vue3.0全套教程視頻筆記 + 代碼 [P001-050]_小白桶子的博客-CSDN博客

P51-100:尚硅谷Vue2.0+Vue3.0全套教程視頻筆記 + 代碼 [P051-100]_小白桶子的博客-CSDN博客

P101-135:當(dāng)前頁(yè)面。

P101-110:

- P101 - vue-resource

課堂筆記:

(1)安裝指令:npm i vue-resource

(2)這個(gè)庫(kù)官方已不維護(hù),轉(zhuǎn)交的團(tuán)隊(duì)維護(hù)頻率低,僅當(dāng)了解,最好還是使用axios。

- P102 - 默認(rèn)插槽

(總結(jié)在P104)本節(jié)部分代碼:

App.vue頁(yè)面:

<template><div class="container"><Category title="美食"><img src="https://s3.ax1x.com/2021/01/16/srJlq0.jpg" alt=""/></Category><Category title="游戲"><ul><li v-for="(g,index) in games" :key="index">{{g}}</li></ul></Category><Category title="電影"><video controls src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"></video></Category></div> </template><script> import Category from './components/Category.vue'; export default {name: "App",components: { Category },data() {return {foods:['火鍋','燒烤','小龍蝦','牛排'],games:['紅色警戒','穿越火線','勁舞團(tuán)','超級(jí)瑪麗'],films:['《教父》','《拆彈專家》','《你好,李煥英》','《尚硅谷》']}}, } </script><style> .container{display: flex;justify-content: space-around; } img{width: 100%; } video{width: 100%; } </style>

Category.vue頁(yè)面:

<template><div class="category"><h3>{{title}}分類</h3><!-- 定義一個(gè)插槽(挖個(gè)坑,等著組件的使用者進(jìn)行填充) --><slot>我是一個(gè)默認(rèn)值,當(dāng)使用者沒有傳遞具體結(jié)構(gòu)時(shí),我會(huì)出現(xiàn)</slot><!-- --></div> </template><script> export default {name:'Category',props:['title'] } </script><style scoped> .category{background-color: skyblue;width: 200px;height: 300px; } h3{text-align: center;background-color: orange; }</style>

- P103 - 具名插槽

(總結(jié)在P104)本節(jié)部分代碼:

App.vue頁(yè)面:

<template><div class="container"><Category title="美食"><img slot="center" src="https://s3.ax1x.com/2021/01/16/srJlq0.jpg" alt=""/><a slot="footer" href="http://www.atguigu.com">更多美食</a></Category><Category title="游戲"><ul slot="center"><li v-for="(g,index) in games" :key="index">{{g}}</li></ul><div class="foot" slot="footer"><a href="http://www.atguigu.com">單機(jī)游戲</a><a href="http://www.atguigu.com">網(wǎng)絡(luò)游戲</a></div></Category><Category title="電影"><video slot="center" controls src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"></video><template v-slot:footer><div class="foot"><a href="http://www.atguigu.com">經(jīng)典</a><a href="http://www.atguigu.com">熱門</a><a href="http://www.atguigu.com">推薦</a></div><h4>歡迎前來觀影</h4></template></Category></div> </template><script> import Category from './components/Category.vue'; export default {name: "App",components: { Category },data() {return {foods:['火鍋','燒烤','小龍蝦','牛排'],games:['紅色警戒','穿越火線','勁舞團(tuán)','超級(jí)瑪麗'],films:['《教父》','《拆彈專家》','《你好,李煥英》','《尚硅谷》']}}, } </script><style> .container,.foot{display: flex;justify-content: space-around; } img{width: 100%; } video{width: 100%; } h4{text-align: center; } </style>

Category.vue頁(yè)面:

<template><div class="category"><h3>{{title}}分類</h3><!-- 定義一個(gè)插槽(挖個(gè)坑,等著組件的使用者進(jìn)行填充) --><slot name="center">我是一個(gè)默認(rèn)值,當(dāng)使用者沒有傳遞具體結(jié)構(gòu)時(shí),我會(huì)出現(xiàn)1</slot><slot name="footer">我是一個(gè)默認(rèn)值,當(dāng)使用者沒有傳遞具體結(jié)構(gòu)時(shí),我會(huì)出現(xiàn)2</slot></div> </template><script> export default {name:'Category',props:['title'] } </script><style scoped> .category{background-color: skyblue;width: 200px;height: 300px; } h3{text-align: center;background-color: orange; }</style>

- P104 - 作用域插槽

老師總結(jié):

插槽:

????????1.作用:讓父組件可以向子組件指定位置插入html結(jié)構(gòu),也是一種組件間通信的方式,適用于 父組件 ===>子組件。

????????2.分類:默認(rèn)插槽、具名插槽、作用域插槽。

????????3.使用方式:

????????????????(1)默認(rèn)插槽:

父組件中:<Category><div>html結(jié)構(gòu)1</div></Category> 子組件中:<template><div><!-- 定義插槽 --><slot>插槽默認(rèn)內(nèi)容...</slot></div></template>

????????????????(2)具名插槽:

父組件中:<Category><template slot="footer"><div>html結(jié)構(gòu)1</div></template></Category><Category><template v-slot:footer><div>html結(jié)構(gòu)2</div></template></Category> 子組件中:<template><div><!-- 定義插槽 --><slot name="center">插槽默認(rèn)內(nèi)容...</slot><slot name="footer">插槽默認(rèn)內(nèi)容...</slot></div></template>

????????????????(3)作用域插槽:

????????????????????????①理解:數(shù)據(jù)在組件的自身,但根據(jù)數(shù)據(jù)生成的結(jié)構(gòu)需要組件的使用者來決定。(games數(shù)據(jù)在Category組件中,但使用數(shù)據(jù)所遍歷出來的結(jié)構(gòu)由App組件決定)

????????????????????????②具體編碼:

父組件中:<Category><template scope="scopeData"><!-- 生成的是ul列表 --><ul><li v-for="g in scopeData.games" :key="g">{{g}}</li></ul></template></Category><Category><template scope="{games}"><!-- 生成的是ul列表 --><h4 v-for="g in games" :key="g">{{g}}</h4></template></Category> 子組件中:<template><div><slot :games="games"></slot></div></template><script>export default {name:'Category',//數(shù)據(jù)在子組件自身data() {return {games:['紅色警戒','穿越火線','勁舞團(tuán)','超級(jí)瑪麗'],}},}</script>

本節(jié)部分代碼:

App.vue頁(yè)面:

<template><div class="container"><Category title="游戲"><template scope="atguigu"><ul><li v-for="(g,index) in atguigu.games" :key="index">{{g}}</li></ul></template></Category><Category title="游戲"><template scope="{games}"><ol><li v-for="(g,index) in games" :key="index">{{g}}</li></ol></template></Category><Category title="游戲"><template scope="{games}"><h4 v-for="(g,index) in games" :key="index">{{g}}</h4></template></Category></div> </template><script> import Category from './components/Category.vue'; export default {name: "App",components: { Category } } </script><style> .container,.foot{display: flex;justify-content: space-around; } img{width: 100%; } video{width: 100%; } h4{text-align: center; } </style>

Category.vue頁(yè)面:

<template><div class="category"><h3>{{title}}分類</h3><slot :games="games">我是默認(rèn)的一些內(nèi)容</slot></div> </template><script> export default {name:'Category',props:['title'],data() {return {games:['紅色警戒','穿越火線','勁舞團(tuán)','超級(jí)瑪麗'],}}, } </script><style scoped> .category{background-color: skyblue;width: 200px;height: 300px; } h3{text-align: center;background-color: orange; }</style>

- P105 - Vuex簡(jiǎn)介

課堂筆記:

(1)老師的課件圖:

老師總結(jié):

vuex是什么:

????????1.概念:專門在Vue中實(shí)現(xiàn)集中式狀態(tài)(數(shù)據(jù))管理的一個(gè)Vue插件,對(duì)Vue應(yīng)用中對(duì)各組件的共享狀態(tài)進(jìn)行集中式的管理(讀/寫),也是一種組件間通信的方式,且適用于任意組件間通信。

????????2.Github地址:GitHub - vuejs/vuex: 🗃? Centralized State Management for Vue.js.

什么時(shí)候用Vuex:

????????1.多個(gè)組件依賴于同一狀態(tài)

????????2.來自不同組件的行為需要變更同一狀態(tài)

- P106 - 求和案例_純vue版

課堂筆記:

(1)關(guān)于select的option值問題:

????????為什么value前面加冒號(hào)有效?不加就是字符串。加上冒號(hào)之后,引號(hào)里的內(nèi)容都會(huì)當(dāng)成JS表達(dá)式去分析,就變成了數(shù)字。

????????最好的做法還是在v-model中加number修飾符。但是上面那個(gè)方法也要清楚。

本節(jié)部分代碼:

Count.vue頁(yè)面:

<template><div><h1>當(dāng)前求和為:{{sum}}</h1><select v-model.number="n"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select><button @click="increment">+</button><button @click="decrement">-</button><button @click="incrementOdd">當(dāng)前求和為奇數(shù)再加</button><button @click="incrementWait">等一等再加</button></div> </template><script> export default {name:'Count',data() {return {n:1, //用戶選擇的數(shù)字sum:0 //當(dāng)前的和}},methods: {increment(){this.sum += this.n},decrement(){this.sum -= this.n},incrementOdd(){if(this.sum % 2){this.sum += this.n}},incrementWait(){setTimeout(() => {this.sum += this.n}, 500);}}, } </script><style scoped> button{margin-left: 5px; }</style>

- P107 - Vuex工作原理圖

課堂筆記:

(1)圖:

(2)圖總流程簡(jiǎn)述:

????????①State:把數(shù)據(jù)交給Vuex其實(shí)就是把數(shù)據(jù)交給Vuex中的state。這個(gè)state的本質(zhì)就是Object對(duì)象(本節(jié)的例子是{ ... sum:0 })。

????????②Vue Components:把數(shù)據(jù)遞給Vue組件。在組件中調(diào)用API,為dispatch。

dispatch在調(diào)用的時(shí)候需要傳兩個(gè)參數(shù),分別是動(dòng)作類型和值(如dispatch( 'jia',2 ))。

????????③Actions:本質(zhì)也是一個(gè)Object對(duì)象。

????????????????在調(diào)用了dispatch之后,Actions里面一定會(huì)有一個(gè)key,和該動(dòng)作對(duì)應(yīng)(如{ ... jia:function })。

????????????????這個(gè)函數(shù)一旦被調(diào)用,就會(huì)收到dispatch傳的值(如2)。

????????????????在這個(gè)對(duì)應(yīng)的函數(shù)中,自己調(diào)用commit(如commit( 'jia',2 ))。提交后繼續(xù)往下走。

????????④Mutations:數(shù)據(jù)類型也是一個(gè)Object對(duì)象。

????????????????其中也會(huì)有很多key value,但是肯定會(huì)有之前傳入的動(dòng)作(如{ ... jia:function })。

????????????????這個(gè)函數(shù)會(huì)拿到兩個(gè)東西,一個(gè)是整個(gè)state,還有一個(gè)是傳過來的值(如2)。只要函數(shù)中寫了“ state.sum += 2 ”,那么Mutate就會(huì)自動(dòng)執(zhí)行。

????????⑤再到State:最后State中的值變了(如{ ... sum:2})。通過Render重新渲染傳給組件。

(3)圖其它解析:

????????①為什么需要Actions,而不是直接傳給Mutations來Mutate?

????????????????Actions對(duì)接Backend API(后端接口),它是用來執(zhí)行異步操作的。

????????②如果已經(jīng)有了數(shù)據(jù)的話,官方是允許Vue Components直接Commit給Mutations的。

????????③Devtools是vuex官方開發(fā)的瀏覽器插件。

????????④圖中沒畫出來的是,Vuex中的Actions、Mutations、State都需要經(jīng)過store管理。dispatch、commit都是由store提供的。

(4)老師的比喻,助理解:

????????Vue Components是客人,Actions是服務(wù)員,Mutations是后廚團(tuán)隊(duì),State就是最終上的菜。

????????客人張嘴說話就是dispatch,客人點(diǎn)單蛋炒飯一份,就相當(dāng)于dispatch( 'jia',2 )。

????????服務(wù)員收到后,將具體的單交給后廚團(tuán)隊(duì)就是commit。

????????后廚收到菜單后做菜就是Mutate。

????????最后做出菜Statue,給客人上菜。

????????如果客人跟后廚很熟(不需要服務(wù)員的菜單Backend API調(diào)用數(shù)據(jù)),也可以直接跳過服務(wù)員Actions,跟后廚講一下,上菜就好了。

- P108 - 搭建Vuex環(huán)境

課堂筆記:

(1)Vuex安裝指令:npm i vuex@3

????????(如果直接npm i vuex,那么安裝的是vuex4,只能在Vue3中使用)

老師總結(jié):

搭建vuex環(huán)境

????????1.創(chuàng)建文件:src/store/index.js

// 引入Vue核心庫(kù) import Vue from 'vue' // 引入Vuex import Vuex from 'vuex' // 應(yīng)用Vuex插件 Vue.use(Vuex)// 準(zhǔn)備actions對(duì)象——用于響應(yīng)組件中的動(dòng)作 const actions = {} // 準(zhǔn)備mutations對(duì)象——用于操作數(shù)據(jù)(state) const mutations = {} // 準(zhǔn)備state對(duì)象——用于存儲(chǔ)數(shù)據(jù) const state = {}// 創(chuàng)建并暴露store export default new Vuex.Store({actions,mutations,state })

????????2.在main.js中創(chuàng)建vm時(shí)傳入store配置項(xiàng)

...... // 引入store import store from './store' ......// 創(chuàng)建vm new Vue({el:'#app',render: h => h(App),store })

- P109 - 求和案例_vuex版

本節(jié)部分代碼:

store.js頁(yè)面:

// 該文件用于創(chuàng)建Vuex中最為核心的store // 引入Vue import Vue from 'vue' // 引入Vuex import Vuex from 'vuex' // 應(yīng)用Vuex插件 Vue.use(Vuex)// 準(zhǔn)備actions——用于響應(yīng)組件中的動(dòng)作 const actions = {/* jia(context,value){// console.log('actions中的jia被調(diào)用了',context,value)context.commit('JIA',value)},jian(context,value){// console.log('actions中的jian被調(diào)用了',context,value)context.commit('JIAN',value)}, */jiaOdd(context,value){if(context.state.sum % 2){context.commit('JIA',value)}},jiaWait(context,value){setTimeout(() =>{context.commit('JIA',value)},500)}, } // 準(zhǔn)備mutations——用于操作數(shù)據(jù)(state) const mutations = {JIA(state,value){// console.log('mutations中的JIA被調(diào)用了',state,value)state.sum += value},JIAN(state,value){// console.log('mutations中的JIAN被調(diào)用了',state,value)state.sum -= value}} // 準(zhǔn)備state——用于存儲(chǔ)數(shù)據(jù) const state = {sum:0 //當(dāng)前的和 }// 創(chuàng)建并暴露store export default new Vuex.Store({actions,mutations,state })

Count.vue頁(yè)面:

<template><div><h1>當(dāng)前求和為:{{$store.state.sum}}</h1><select v-model.number="n"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select><button @click="increment">+</button><button @click="decrement">-</button><button @click="incrementOdd">當(dāng)前求和為奇數(shù)再加</button><button @click="incrementWait">等一等再加</button></div> </template><script> export default {name:'Count',data() {return {n:1, //用戶選擇的數(shù)字}},methods: {increment(){this.$store.commit('JIA',this.n)},decrement(){this.$store.commit('JIAN',this.n)},incrementOdd(){this.$store.dispatch('jiaOdd',this.n)},incrementWait(){setTimeout(() => {this.$store.dispatch('jiaWait',this.n)}, 500);}}, } </script><style scoped> button{margin-left: 5px; }</style>

- P110 - vuex開發(fā)者工具的使用

課堂筆記:

(1)vue控制臺(tái)切換:

老師視頻里是這樣的:

我這里的更新了,和老師的不一樣,直接選這個(gè):

P111-120:

- P111 - getters配置項(xiàng)

課堂筆記:

(1)state和getters的關(guān)系就像data和computed的關(guān)系。

(2)不是說數(shù)據(jù)處理必須要用這個(gè),在數(shù)據(jù)處理邏輯復(fù)雜,且需要復(fù)用的情況下推薦使用。

老師總結(jié):

1.概念:當(dāng)state中的數(shù)據(jù)需要經(jīng)過加工后再使用時(shí),可以使用getters加工。

2.在store.js中追加getters配置:

...... const getters = {bigSum(state){return state.sum*10} } ...... // 創(chuàng)建并暴露store export default new Vuex.Store({actions,mutations,state,getters })

3.組件中讀取數(shù)據(jù):$store.getters.bigSum

- P112 - mapState和mapGetters

課堂筆記:

(1)ES6中的 ... 為擴(kuò)展運(yùn)算符,能將 [ 數(shù)組 ] 或?qū)ο筠D(zhuǎn)換為逗號(hào)分隔的參數(shù)序列。

老師總結(jié):

四個(gè)map方法的使用(前兩個(gè)):

????????1.mapState方法:用于幫助我們映射state中的數(shù)據(jù)為計(jì)算屬性

computed:{ // 借助mapState生成計(jì)算屬性,從state中讀取數(shù)據(jù)。(對(duì)象寫法)...mapState({sum:'sum',school:'school',subject:'subject'}),// 借助mapState生成計(jì)算屬性,從state中讀取數(shù)據(jù)。(數(shù)組寫法)...mapState(['sum','school','subject']), },

????????2.mapGetters方法:用于幫助我們映射getters中的數(shù)據(jù)為計(jì)算屬性

computed:{ // 借助mapGetters生成計(jì)算屬性,從getters中讀取數(shù)據(jù)。(對(duì)象寫法)...mapGetters({bigSum:'bigSum'}),// 借助mapGetters生成計(jì)算屬性,從getters中讀取數(shù)據(jù)。(數(shù)組寫法)...mapGetters(['bigSum']) },

(代碼在P116)

- P113 - mapActions與mapMutations

老師總結(jié):

四個(gè)map方法的使用(后兩個(gè)):

????????3.mapActions方法:用于幫助我們生成與actions對(duì)話的方法,即:包含$store.dispatch(xxx)的函數(shù)。

methods:{ // 借助mapActions生成對(duì)應(yīng)的方法,方法中會(huì)調(diào)用commit去練習(xí)mutations(對(duì)象寫法)...mapActions({incrementOdd:'jiaOdd',incrementWait:'jiaWait'}),// 借助mapActions生成對(duì)應(yīng)的方法,方法中會(huì)調(diào)用commit去練習(xí)mutations(數(shù)組寫法)...mapActions(['jiaOdd','jiaWait']), }

????????4.mapMutations方法:用于幫助我們生成與mutations對(duì)話的方法,即:包含$store.commit(xxx)的函數(shù)。

methods:{ // 借助mapMutations生成對(duì)應(yīng)的方法,方法中會(huì)調(diào)用commit去練習(xí)mutations(對(duì)象寫法)...mapMutations({increment:'JIA',decrement:'JIAN'}),// 借助mapMutations生成對(duì)應(yīng)的方法,方法中會(huì)調(diào)用commit去練習(xí)mutations(數(shù)組寫法)...mapMutations(['JIA','JIAN']), }

備注:mapActions與mapMutations使用時(shí),若需要傳遞參數(shù),需要:在模板中綁定事件時(shí)傳遞好參數(shù),否則參數(shù)是事件對(duì)象。

(代碼在P116)

- P114 - 多組件共享數(shù)據(jù)

(代碼在P116)

- P115 - vuex模塊化+namespace_1

(代碼在P116)

- P116 - vuex模塊化+namespace_2

課堂筆記:

(1)老師的小語錄鏈接:

https://api.uixsj.cn/hitokoto/get?type=social

老師總結(jié):

模塊化+命名空間

????????1.目的:讓代碼更好維護(hù),讓多種數(shù)據(jù)分析更加明確。

????????2.修改store.js

const countAbout = {namespaced:true,//開啟命名空間state:{x:1},mutations:{......},actions:{......},getters:{bigSum(state){return state.sum*10}} }const personAbout = {namespaced:true,//開啟命名空間state:{......},mutations:{......},actions:{......} }const store = new Vuex.Store({modules:{countAbout,personAbout}})

????????3.開啟命名空間后,組件中讀取state數(shù)據(jù):

//方式一:自己直接讀取 this.$store.state.personAbout.list //方式二:借助mapState讀取 ...mapState('countAbout',['sum','school','subject']),

????????4.開啟命名空間后,組件中讀取getters數(shù)據(jù):

//方式一:自己直接讀取 this.$store.getters['personAbout/firstPersonName'] //方式二:借助mapGetters讀取 ...mapGetters('countAbout',['bigSum'])

????????5.開啟命名空間后,組件中調(diào)用dispatch:

//方式一:自己直接讀取 this.$store.dispatch('personAbout/addPersonWang',personObj) //方式二:借助mapGetters讀取 ...mapActions('countAbout',{incrementOdd:'jiaOdd',incrementWait:'jiaWait'}),

????????6.開啟命名空間后,組件中調(diào)用commit:

//方式一:自己直接讀取 this.$store.commit('personAbout/ADD_PERSON',personObj) //方式二:借助mapGetters讀取 ...mapMutations('countAbout',{increment:'JIA',decrement:'JIAN'}),

本節(jié)部分代碼(求和案例_vuex升級(jí)版)

store/index.js頁(yè)面:

// 該文件用于創(chuàng)建Vuex中最為核心的store // 引入Vue import Vue from 'vue' // 引入Vuex import Vuex from 'vuex' import countOptions from './count' import personOptions from './person' // 應(yīng)用Vuex插件 Vue.use(Vuex)// 創(chuàng)建并暴露store export default new Vuex.Store({modules:{countAbout:countOptions,personAbout:personOptions}})

store/count.js頁(yè)面:

// 求和相關(guān)的配置 export default {namespaced:true,actions:{jiaOdd(context,value){if(context.state.sum % 2){context.commit('JIA',value)}},jiaWait(context,value){setTimeout(() =>{context.commit('JIA',value)},500)},},mutations:{JIA(state,value){// console.log('mutations中的JIA被調(diào)用了',state,value)state.sum += value},JIAN(state,value){// console.log('mutations中的JIAN被調(diào)用了',state,value)state.sum -= value},},state:{sum:0, //當(dāng)前的和school:'尚硅谷',subject:'前端',},getters:{bigSum(state){return state.sum*10}}, }

store/person.js頁(yè)面:

import axios from "axios" import { nanoid } from "nanoid"// 人員管理相關(guān)的配置 export default {namespaced:true,actions:{addPersonWang(context,value){if(value.name.indexOf('王') === 0){context.commit('ADD_PERSON',value)}else{alert('添加的人必須姓王')}},addPersonServer(context){axios.get('https://api.uixsj.cn/hitokoto/get?type=social').then(response => {context.commit('ADD_PERSON',{id:nanoid(),name:response.data})},error => {alert(error.message)}) }},mutations:{ADD_PERSON(state,value){state.personList.unshift(value)}},state:{personList:[{id:'001',name:'張三'}]},getters:{firstPersonName(state){return state.personList[0].name}}, }

Count.vue頁(yè)面:

<template><div><h1>當(dāng)前求和為:{{sum}}</h1><h3>當(dāng)前求和放大10倍為:{{bigSum}}</h3><h3>我在{{school}},學(xué)習(xí){{subject}}</h3><h3 style="color:red;">Person組件的總?cè)藬?shù)是:{{personList.length}}</h3><select v-model.number="n"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select><button @click="increment(n)">+</button><button @click="decrement(n)">-</button><button @click="incrementOdd(n)">當(dāng)前求和為奇數(shù)再加</button><button @click="incrementWait(n)">等一等再加</button></div> </template><script> import {mapGetters, mapState,mapActions,mapMutations} from 'vuex' export default {name:'Count',data() {return {n:1, //用戶選擇的數(shù)字}},computed:{// 借助mapState生成計(jì)算屬性,從state中讀取數(shù)據(jù)。(數(shù)組寫法)...mapState('countAbout',['sum','school','subject']),...mapState('personAbout',['personList']),// 借助mapGetters生成計(jì)算屬性,從getters中讀取數(shù)據(jù)。(數(shù)組寫法)...mapGetters('countAbout',['bigSum'])},methods: {// 借助mapMutations生成對(duì)應(yīng)的方法,方法中會(huì)調(diào)用commit去練習(xí)mutations(對(duì)象寫法)...mapMutations('countAbout',{increment:'JIA',decrement:'JIAN'}),// 借助mapActions生成對(duì)應(yīng)的方法,方法中會(huì)調(diào)用commit去練習(xí)mutations(對(duì)象寫法)...mapActions('countAbout',{incrementOdd:'jiaOdd',incrementWait:'jiaWait'}),} } </script><style scoped> button{margin-left: 5px; }</style>

Person.vue頁(yè)面:

<template><div><h1>人員列表</h1><h3 style="color:red;">Count組件求和為:{{sum}}</h3><h3>列表中第一個(gè)人的名字是:{{firstPersonName}}</h3><input type="text" placeholder="請(qǐng)輸入名字" v-model="name"/><button @click="add">添加</button><button @click="addWang">添加一個(gè)姓王的人</button><button @click="addPersonServer">添加一個(gè)人,名字隨機(jī)</button><ul><li v-for="p in personList" :key="p.id">{{p.name}}</li></ul></div> </template><script> import {nanoid} from 'nanoid' export default {name:'Person',data() {return {name:''}},computed:{personList(){return this.$store.state.personAbout.personList},sum(){return this.$store.state.countAbout.sum},firstPersonName(){return this.$store.getters['personAbout/firstPersonName']}},methods: {add(){const personObj = {id:nanoid(),name:this.name}this.$store.commit('personAbout/ADD_PERSON',personObj)// console.log(personObj)this.name = ''},addWang(){const personObj = {id:nanoid(),name:this.name}this.$store.dispatch('personAbout/addPersonWang',personObj)this.name = ''},addPersonServer(){this.$store.dispatch('personAbout/addPersonServer')}}, } </script><style></style>

- P117 - 路由的簡(jiǎn)介

課堂筆記:

(1)老師課件截圖:

老師總結(jié):

1.vue-router的理解:

????????vue的一個(gè)插件庫(kù),專門用來實(shí)現(xiàn)SPA應(yīng)用。

2.對(duì)SPA應(yīng)用的理解:

????????(1)單頁(yè)Web應(yīng)用(single page web application, SPA)。

????????(2)整個(gè)應(yīng)用只有一個(gè)完整的頁(yè)面。

????????(3) 點(diǎn)擊頁(yè)面中的導(dǎo)航鏈接不會(huì)刷新頁(yè)面,只會(huì)做頁(yè)面的局部更新。

????????(4)數(shù)據(jù)需要通過 ajax 請(qǐng)求獲取。

3.路由的理解:

????????(1)什么是路由?

????????????????① 一個(gè)路由就是一組映射關(guān)系(key - value)

????????????????② key 為路徑, value 可能是 function 或 componen

????????(2)路由分類

????????????????① 后端路由:

????????????????????????1)理解:value 是 function, 用于處理客戶端提交的請(qǐng)求。

????????????????????????2)工作過程:服務(wù)器接收到一個(gè)請(qǐng)求時(shí), 根據(jù)請(qǐng)求路徑找到匹配的函數(shù)來處理請(qǐng)求, 返回響應(yīng)數(shù)據(jù)。

????????????????② 前端路由:

????????????????????????1)理解:value 是 component,用于展示頁(yè)面內(nèi)容。

????????????????????????2)工作過程:當(dāng)瀏覽器的路徑改變時(shí), 對(duì)應(yīng)的組件就會(huì)顯示。

important!從這節(jié)開始,路由系列一般不貼代碼,老師的筆記里做法部分的代碼寫的很全,再貼代碼就有點(diǎn)冗余了)

- P118 - 路由基本使用

課堂筆記:

(1)Vuex安裝指令:npm i vue-router@3

????????(如果直接npm i vue-router,那么安裝的是vue-router4,只能在Vue3中使用)

(2)router-link標(biāo)簽最終轉(zhuǎn)換到頁(yè)面上就是a標(biāo)簽。

老師總結(jié):

路由

????????理解:一個(gè)路由(route)就是一組映射關(guān)系(key - value),多個(gè)路由需要路由器(router)進(jìn)行管理。

????????前端路由:key是路徑,value是組件。

1.基本使用:

????????(1)安裝vue-router,命令:npm i vue-router

????????(2)應(yīng)用插件:Vue.use(VueRouter)

????????(3)編寫router配置項(xiàng):

// 引入VueRouter import VueRouter from "vue-router"; // 引入路由組件 import About from '../components/About' import Home from '../components/Home'// 創(chuàng)建router實(shí)例對(duì)象,去管理一組一組的路由規(guī)則 const router = new VueRouter({routes:[{path:'/about',component:About},{path:'/home',component:Home}] }) // 暴露router expot default router

????????(4)實(shí)現(xiàn)切換(active-class可配置高亮樣式)

<router-link active-class="active" to="/about">About</router-link>

????????(5)指定展示位置

<router-view></router-view>

- P119 - 幾個(gè)注意點(diǎn)

老師總結(jié):

2.幾個(gè)注意點(diǎn)

????????(1)路由組件通常存放在pages文件夾,一般組件通常存放在components文件夾。

????????(2)通過切換,“隱藏”了的路由組件,默認(rèn)是被銷毀掉的,需要的時(shí)候再去掛載。

????????(3)每個(gè)組件都有自己的$route屬性,里面存儲(chǔ)著自己的路由信息。

????????(4)整個(gè)應(yīng)用中只有一個(gè)router,可以通過組件的$router屬性獲取到。

- P120 - 嵌套路由

老師總結(jié):

3.多級(jí)路由

????????(1)配置路由規(guī)則,使用children配置項(xiàng):

routes:[{path:'/about',component:About},{path:'/home',component:Home,children:[ //通過children配置子級(jí)路由{path:'news', //此處一定不要寫‘/news’component:News,},{path:'message', //此處一定不要寫‘/message’component:Message,}]} ]

????????(2)跳轉(zhuǎn)(要寫完整路徑):

<router-link to="/home/news">News</router-link>

P121-130:

- P121 - 路由的query參數(shù)

課堂筆記:

(老師寫了,但是視頻沒放出來,也沒找到這個(gè)課件,所以我自己總結(jié)了一下)

路由的query參數(shù)

? ? ? ? (1)作用:跳轉(zhuǎn)的時(shí)候傳遞參數(shù)

? ? ? ? (2)如何使用:

????????????????①跳轉(zhuǎn)路由并攜帶query參數(shù),有兩種寫法:

<!-- 跳轉(zhuǎn)路由并攜帶query參數(shù),to的字符串寫法 --> <router-link :to="`/home/message/detail?id=${m.id}&title=${m.title}`">{{m.title}}</router-link><!-- 跳轉(zhuǎn)路由并攜帶query參數(shù),to的對(duì)象寫法 --> <router-link :to="{path:'/home/message/detail',query:{id:m.id,title:m.title} }">{{m.title}} </router-link>

????????????????②用$route.query接收參數(shù):

<li>消息編號(hào):{{$route.query.id}}</li> <li>消息標(biāo)題:{{$route.query.title}}</li>

- P122 - 命名路由

老師總結(jié):

5.命名路由

????????(1)作用:可以簡(jiǎn)化路由的跳轉(zhuǎn)。

????????(2)如何使用:

????????????????①給路由命名:

{path:'/demo',component:Demo,children:[{path:'test',component:Test,children:[{name:'hello',path:'detail',component:Detail,}]}] }

????????????????②簡(jiǎn)化跳轉(zhuǎn):

<!-- 簡(jiǎn)化前,需要寫完整的路徑 --> <router-link to="demo/test/welcome">跳轉(zhuǎn)</router-link><!-- 簡(jiǎn)化后,直接通過名字跳轉(zhuǎn) --> <router-link :to="{name:'hello'}">跳轉(zhuǎn)</router-link><!-- 簡(jiǎn)化寫法配合傳遞參數(shù) --> <router-link :to="{name:'hello',query:{id:666,title:'你好' }}" >跳轉(zhuǎn)</router-link>

- P123 - 路由的params參數(shù)

老師總結(jié):

6.路由的params參數(shù)

????????(1)配置路由,聲明接收params參數(shù)

{path:'/home',component:Home,children:[{path:'news',component:News,},{path:'message',component:Message,children:[{name:'xiangqing',path:'detail/:id/:title', //使用占位符聲明接收params參數(shù)component:Detail,}]}] }

????????(2)傳遞參數(shù)

<!-- 跳轉(zhuǎn)路由并攜帶params參數(shù),to的字符串寫法 --> <router-link :to="`/home/message/detail/666/你好`">{{m.title}}</router-link><!-- 跳轉(zhuǎn)路由并攜帶params參數(shù),to的對(duì)象寫法 --> <router-link :to="{name:'xiangqing',params:{id:666,title:'你好'} }">{{m.title}} </router-link>

特別注意:路由攜帶params參數(shù)時(shí),若使用to的對(duì)象寫法,則不能使用path配置項(xiàng),必須使用name配置!

????????(3)接收參數(shù)

$route.params.id $route.params.title

- P124 - 路由的props配置

老師總結(jié):

7.路由的props配置

????????作用:讓路由組件更方便的收到參數(shù)

{name:'xiangqing',path:'detail',component:Detail,// props的第一種寫法,值為對(duì)象,該對(duì)象中的所有key-value都會(huì)以props的形式傳給Detail組件// props:{a:1,b:'hello'}// props的第二種寫法,值為布爾值,若布爾值為真,就會(huì)把該路由組件收到的所有params參數(shù),以props的形式傳給Detail組件// props:true// props的第三種寫法,值為函數(shù),該函數(shù)返回的對(duì)象中每一組key-value都會(huì)通過props傳給Detail組件props({$route}){return {id:$route.query.id,title:$route.query.title}} }

- P125 - router-link的replace屬性

老師總結(jié):

8. router-link的replace屬性

????????(1)作用:控制路由跳轉(zhuǎn)時(shí)操作瀏覽器歷史記錄的模式

????????(2)瀏覽器的歷史記錄有兩種寫入方式,分別為push和replace,push是追加歷史記錄,replace是替換當(dāng)前記錄。路由跳轉(zhuǎn)時(shí)候默認(rèn)為push。

????????(3)如何開啟replace模式:

<router-link replace ...... >News</router-link>

- P126 - 編程式路由導(dǎo)航

老師總結(jié):

9.編程式路由導(dǎo)航

????????(1)作用:不借助router-link實(shí)現(xiàn)路由跳轉(zhuǎn),讓路由跳轉(zhuǎn)更加靈活

????????(2)具體編碼:

//$routere的兩個(gè)API this.$router.push({name:'xiangqing',params:{id:xxx,title:xxx } })this.$router.replace({name:'xiangqing',params:{id:xxx,title:xxx } })this.$router.forward() //前進(jìn) this.$router.back() //后退 this.$router.go(3) //可前進(jìn)也可后退

- P127 - 緩存路由組件

老師總結(jié):

10.緩存路由組件

????????(1)作用:讓不展示的路由組件保持掛載,不被銷毀。

????????(2)具體編碼:

<!-- 緩存多個(gè)路由組件 --> <keep-alive :include="['News','Message']"><router-view></router-view> </keep-alive><!-- 緩存一個(gè)路由組件 --> <keep-alive include="News"><router-view></router-view> </keep-alive>

- P128 - 兩個(gè)新的生命周期鉤子

課堂筆記:

(1)$nextTick(真實(shí)DOM出來之后再回調(diào),回顧P90)和activated、deactivated是生命周期中不在圖中的剩下三個(gè)。

老師總結(jié):

11.兩個(gè)新的生命周期鉤子

????????(1)作用:路由組件所獨(dú)有的兩個(gè)鉤子,用于捕獲路由組件的激活狀態(tài)。

????????(2)具體名字:

????????????????① activated 路由組件被激活時(shí)觸發(fā)。

????????????????② deactivated 路由組件失活時(shí)觸發(fā)。

- P129 - 全局前置_路由守衛(wèi)

(老師總結(jié)和P130整合在一起)

- P130 - 全局后置_路由守衛(wèi)

課堂筆記:

(1)$route中的meta:路由元信息。

老師總結(jié):

12.路由守衛(wèi)

????????(1)作用:對(duì)路由進(jìn)行權(quán)限控制

????????(2)分類:全局守衛(wèi)、獨(dú)享守衛(wèi)、組件內(nèi)守衛(wèi)

????????(3)全局守衛(wèi):

// 全局前置路由守衛(wèi)——初始化時(shí)執(zhí)行、每次路由切換前被調(diào)用 router.beforeEach((to,from,next) => {console.log('beforeEach',to,from)if(to.meta.isAuth){ //判斷當(dāng)前路由是否需要進(jìn)行權(quán)限控制if(localStorage.getItem('school')==='atguigu'){ //權(quán)限控制的具體規(guī)則next() //放行}else{alert('暫無權(quán)限查看')// next({name:'guanyu'})}}else{next() //放行} })// 全局后置路由守衛(wèi)——初始化時(shí)執(zhí)行、每次路由切換之后被調(diào)用 router.afterEach((to,from) => {console.log('afterEach',to,from)if(to.meta.title){document.title = to.meta.title //修改網(wǎng)頁(yè)的title }else{document.title = 'vue_test' }})

P131-135:

- P131 - 獨(dú)享路由守衛(wèi)

老師總結(jié):

(4)獨(dú)享守衛(wèi):

beforeEnter:(to, from, next) => {console.log('beforeEnter',to, from)if(to.meta.isAuth){ //判斷當(dāng)前路由是否需要進(jìn)行權(quán)限控制if(localStorage.getItem('school')==='atguigu'){next()}else{alert('學(xué)校名不對(duì),沒有查看權(quán)限!')}}else{next()} }

- P132 - 組件內(nèi)路由守衛(wèi)

老師總結(jié):

(5)組件內(nèi)守衛(wèi):

// 進(jìn)入守衛(wèi):通過路由規(guī)則,進(jìn)入該組件時(shí)被調(diào)用 beforeRouteEnter (to, from, next){ }, // 離開守衛(wèi):通過路由規(guī)則,離開該組件時(shí)被調(diào)用 beforeRouteLeave (to, from, next){ },

- P133 - history模式與hash模式

課堂筆記:

(1)哈希值(如 http://localhost:8080/#/home/message 中的 #/home/message 就是哈希值)最大的特點(diǎn)就是,不會(huì)隨著http請(qǐng)求發(fā)送給服務(wù)器。

(2)打包指令:npm run build

????????(生成的東西需要放到服務(wù)器中部署才能用。)

(3)課中的nodeJS的express(僅了解不需要掌握),可以看這個(gè):NodeJS之Express基礎(chǔ)_不起眼的皮皮蝦的博客-CSDN博客_express nodejs

(4)中間件 connect-history-api-fallback

????????安裝指令:npm i connect-history-api-fallback

????????后端引入(必須得在靜態(tài)資源前引入)調(diào)用:

const history = require('npm i connect-history-api-fallback'); ...... app.use(history())

(5)nginx也可以實(shí)現(xiàn),起到中間代理作用(僅了解)

老師總結(jié):

13.路由器的兩種工作模式

????????(1)對(duì)于一個(gè)url來說,什么是hash值?——#及其后面的內(nèi)容就是hash值。

????????(2)hash值不會(huì)包含在HTTP請(qǐng)求中,即:hash值不會(huì)帶給服務(wù)器。

????????(3)hash模式:

????????????????①地址中永遠(yuǎn)帶著#號(hào),不美觀。

????????????????②若以后將地址通過第三方手機(jī)app分享,若app校驗(yàn)嚴(yán)格,則地址會(huì)被標(biāo)記為不合法。

????????????????③兼容性較好。

????????(4)history模式:

????????????????①地址干凈,美觀。

????????????????②兼容性和hash模式相比略差。

????????????????③應(yīng)用部署上線時(shí)需要后端人員支持,解決刷新頁(yè)面服務(wù)端404的問題。

- P134 - element-ui基本使用

課堂筆記:

(1)安裝指令:npm i element-ui -S

老師總結(jié):

Vue UI組件庫(kù)

????????1.移動(dòng)端常用 UI 組件庫(kù)

????????????????(1)Vant Vant 3 - Mobile UI Components built on Vue

????????????????(2)Cube UI cube-ui Document

????????????????(3)Mint UI Mint UI

????????2.PC 端常用 UI 組件庫(kù)

????????????????(1)Element UI Element - The world's most popular Vue UI framework

????????????????(2)IView UI iView / View Design 一套企業(yè)級(jí) UI 組件庫(kù)和前端解決方案

本節(jié)部分代碼:

main.js頁(yè)面:

// 引入Vue import Vue from 'vue' // 引入App import App from './App.vue'// 完整引入 // 引入ElementUI組件庫(kù) import ElementUI from 'element-ui' // 引入ElementUI全部樣式 import 'element-ui/lib/theme-chalk/index.css' // 關(guān)閉Vue的生產(chǎn)提示 Vue.config.productionTip = false // 應(yīng)用ElementUI Vue.use(ElementUI)// 創(chuàng)建vm new Vue({el:'#app',render: h => h(App), })

- P135 - element-ui按需引入

課堂筆記:

(1)按需引入指令:npm install babel-plugin-component -D

(npm xxx -D 代表著安裝開發(fā)依賴。)

(2)報(bào)錯(cuò)解決:

如果報(bào) not found ’xxx' 的錯(cuò),那就在指令中輸入: npm i xxx

如果是跟老師一樣的問題,那需要在babel.config.js頁(yè)面的presets配置項(xiàng)中,將原先的 es2015 修改成 @babel/preset-env

~ ??? ~ Vue2.0?完 結(jié) 撒 花?~ ??? ~

——————————————————————————————————————

——————————————原創(chuàng)不易,轉(zhuǎn)載請(qǐng)聲明——————————————

總結(jié)

以上是生活随笔為你收集整理的尚硅谷Vue2.0+Vue3.0全套教程视频笔记 + 代码 [P101-135]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

91欧美在线 | 黄色com | 福利在线看片 | 免费精品在线视频 | 黄色av在| 国产成人精品一区二区三区网站观看 | 久草视频免费看 | 国产探花| 中日韩三级视频 | 免费观看性生活大片 | 久久久国产精品亚洲一区 | 亚洲日韩欧美一区二区在线 | 亚洲情婷婷 | 青青色影院 | 天天色天天 | 一级α片 | 免费在线观看不卡av | 91视频这里只有精品 | 亚洲欧美怡红院 | 久久久国产精品人人片99精片欧美一 | 91大神dom调教在线观看 | 999电影免费在线观看 | 500部大龄熟乱视频使用方法 | 制服丝袜成人在线 | 国产精品久久久999 国产91九色视频 | 久久伊人八月婷婷综合激情 | 在线黄色国产 | 色综合久久久久久久 | aaa毛片视频 | 91黄色小视频| 日本中文一级片 | 6699私人影院| 精品欧美乱码久久久久久 | 日韩免费一级a毛片在线播放一级 | 久久成人国产精品入口 | 国产成人精品女人久久久 | 精品女同一区二区三区在线观看 | 欧美性生交大片免网 | 日韩中文字幕第一页 | 日韩乱码在线 | 色婷婷av在线 | 美女免费黄网站 | 久99久精品视频免费观看 | 欧美日韩一级视频 | 男女拍拍免费视频 | 欧美了一区在线观看 | 97精品国产91久久久久久久 | 久久99国产精品视频 | 免费看黄的视频 | 中文字幕免费在线看 | 99在线观看视频 | 天天摸天天操天天舔 | 美女黄网站视频免费 | 777视频在线观看 | 国产精品久久久久久久久久久久久 | 日日弄天天弄美女bbbb | 日日操日日操 | 香蕉成人在线视频 | 免费观看久久 | 成年人电影毛片 | 91亚洲永久精品 | 狠狠色噜噜狠狠狠狠 | 香蕉在线影院 | 亚洲精品五月天 | 中文字幕亚洲五码 | 国产区精品视频 | 国产在线资源 | 国产91在线 | 美洲 | 色网站中文字幕 | 国产99色| a√国产免费a | 综合久久久 | 天天做日日做天天爽视频免费 | 精品一二区 | 国产黄色片久久 | 久久免费视频这里只有精品 | 天天操天天干天天操天天干 | 草久中文字幕 | 国产精品免费观看久久 | 中文十次啦 | 美女在线免费视频 | 西西人体www444 | 久久老司机精品视频 | 综合国产在线 | 91av视屏| 999视频在线播放 | 99久e精品热线免费 99国产精品久久久久久久久久 | 四虎影视成人精品国库在线观看 | 中文字幕免费在线看 | 狠狠色丁香婷婷综合欧美 | 精品国产一二三 | 91精品视频免费看 | 久久人人爽人人爽人人 | 97在线观看免费观看 | 久久激情五月丁香伊人 | www.天天干 | 日韩 国产 | 欧美极品一区二区三区 | 久久成人午夜视频 | 中文字幕亚洲精品在线观看 | 人人爽人人干 | 最近免费在线观看 | 亚洲精品国产精品乱码在线观看 | 婷婷在线网站 | 国产日韩三级 | 蜜臀av夜夜澡人人爽人人 | 五月天最新网址 | 亚洲一区二区视频 | 特级a老妇做爰全过程 | 月丁香婷婷 | aav在线 | 国产综合精品久久 | 精品在线视频观看 | 韩国视频一区二区三区 | 亚洲综合婷婷 | 人人澡人人添人人爽一区二区 | 高清国产在线一区 | 又粗又长又大又爽又黄少妇毛片 | 国产 日韩 欧美 中文 在线播放 | 久久久久久久久免费 | 国产精品日韩在线观看 | 日韩r级电影在线观看 | 久久综合久久八八 | 综合色中文 | 五月天久久狠狠 | 久久久精品综合 | 久久伊人精品天天 | 久久公开免费视频 | 国产精品成人免费 | 97综合网 | 999久久国产精品免费观看网站 | 欧美另类一二三四区 | 午夜精品久久久久久久99婷婷 | 欧美日韩一区久久 | 精品国产一区二区三区蜜臀 | 成人中文字幕在线 | 国产99久久九九精品免费 | www.伊人色.com | 久久黄色成人 | 丁香六月中文字幕 | 久久久91精品国产一区二区三区 | 亚洲成人动漫在线观看 | 国产一级大片在线观看 | 亚洲精品视频在线观看免费 | 欧美人操人 | 丁香婷婷网 | www五月天com| www日韩欧美| 欧美一级性生活视频 | 久久这里只有精品9 | 91精品天码美女少妇 | 亚洲视频第一页 | 久章操 | 色婷婷综合五月 | 香蕉影院在线观看 | 久久国产精品久久久 | 亚洲黄色在线播放 | 国产爽视频 | 国产精品成人一区二区三区吃奶 | 97超碰超碰久久福利超碰 | 国产亚洲一区 | 免费人成网 | www.国产精品 | 丁香婷婷在线 | 国产精品丝袜 | 国产精品久久久久久模特 | 久久99精品久久久久久清纯直播 | 中文国产在线观看 | 免费a级观看 | 亚洲精品国产精品乱码在线观看 | 午夜精品一区二区国产 | 五月天狠狠操 | 日韩久久视频 | 国产精品成人一区二区 | 在线观看免费黄视频 | 天天爱天天操 | 中文字幕在线看片 | 久久人人爽爽人人爽人人片av | 国产黄色理论片 | 成年人免费看av | 超碰成人免费电影 | 91成品视频 | 精选久久| 在线电影 你懂得 | 国产精品完整版 | 久久免费试看 | 日韩在线中文字幕视频 | 麻豆久久精品 | 中文字幕专区高清在线观看 | 久久久www成人免费精品张筱雨 | 国产高清视频在线播放一区 | 亚洲成av人片在线观看 | 久久高清av | 色视频网页| 成人性生活大片 | 久久婷亚洲五月一区天天躁 | 日韩欧美一区二区三区视频 | 日韩免费三区 | 久精品视频在线 | 久久国产精品免费一区二区三区 | 午夜精品一区二区三区视频免费看 | 免费观看v片在线观看 | 国产伦理久久精品久久久久_ | 在线观看免费版高清版 | 97国产在线播放 | 欧美日韩电影在线播放 | 97超碰免费在线观看 | 人人干97 | 日韩精品一区二区三区电影 | 国产一线二线三线在线观看 | 91系列在线观看 | 91视频91色 | www.天天成人国产电影 | 亚洲人人精品 | 在线观看亚洲视频 | 天天干天天射天天爽 | 国产欧美精品在线观看 | 国产精品免费观看久久 | 黄色一级网 | 成人av在线一区二区 | 国产在线高清 | 色在线高清 | 黄色一级网| 粉嫩av一区二区三区四区五区 | 婷婷 中文字幕 | 91精品欧美一区二区三区 | 6080yy午夜一二三区久久 | 午夜视频在线网站 | 日韩啪视频| 欧美日韩在线视频观看 | 五月婷婷在线综合 | 中文字幕在线观看一区 | 国产裸体无遮挡 | 视频在线精品 | 欧美日韩中文字幕综合视频 | 中文在线字幕观看电影 | 国产成人三级在线观看 | 久久电影色 | 久久99国产综合精品免费 | 国产在线综合视频 | 中文字幕91 | 香蕉网址| 久久久久国产成人精品亚洲午夜 | 成人羞羞免费 | 麻豆免费视频观看 | 国产日韩欧美在线观看 | 黄色小说在线观看视频 | 五月激情站 | 91资源在线观看 | 黄色网址a | 三级黄色欧美 | 色婷婷亚洲综合 | 婷婷综合视频 | 欧美精品久久久久久久久久丰满 | 在线观看亚洲专区 | 国内综合精品午夜久久资源 | 免费精品国产 | 99国内精品 | 夜色在线资源 | 国产亚洲高清视频 | 亚洲国产高清在线 | 欧美在线视频一区二区三区 | 亚洲精品中文字幕在线 | 日韩手机视频 | 亚洲精品在线观看免费 | 一区二区三区高清不卡 | 欧美精品天堂 | 国产成人精品女人久久久 | 在线观看国产日韩 | 欧美激情第一区 | 色综合久久五月天 | 在线日本v二区不卡 | 日韩大片在线播放 | 在线观看免费一区 | 黄色大全免费网站 | 91精品啪在线观看国产81旧版 | 天天摸夜夜添 | 免费亚洲黄色 | 久久国产精品一区二区 | 成人久久免费视频 | 国产一区二区电影在线观看 | 91丨九色丨国产在线观看 | 日韩在线二区 | 有码一区二区三区 | 免费特级黄色片 | 久久精品激情 | 天天人人 | 91丨九色丨高潮丰满 | 国产精品久久久久久一区二区三区 | 欧美精品久久天天躁 | 91精品在线观看视频 | 成年人视频在线免费 | 九九在线免费视频 | 欧美一级黄大片 | 日韩精品你懂的 | 少妇视频在线播放 | 日韩精品一卡 | 久久国产精品免费看 | 一区二区男女 | 99热在线这里只有精品 | 亚洲涩涩网站 | 久久免费视频3 | 美女网站一区 | 色999视频 | wwxxxx日本 | 精品国产_亚洲人成在线 | 国产精品一区二区三区免费看 | 国产一区二区在线免费播放 | 中文字幕国产一区 | 日韩精品免费在线播放 | 久久久精品国产一区二区电影四季 | 永久免费看av | 天堂中文在线视频 | 国产成人精品三级 | 在线免费观看av网站 | 天天干,天天射,天天操,天天摸 | 精品婷婷 | 色婷婷国产精品一区在线观看 | 又色又爽又黄 | 国产日韩高清在线 | 色婷婷六月天 | 日日干天天爽 | 久久久久二区 | 久久视频一区 | 欧美日韩高清免费 | 国产高清视频免费 | 99久久99久久精品国产片果冰 | 日韩在线观看视频一区二区三区 | 麻豆视频免费网站 | 亚洲精品av中文字幕在线在线 | 综合网天天色 | 91麻豆文化传媒在线观看 | 欧洲精品视频一区二区 | 日日日干 | 涩涩网站在线看 | 九九欧美视频 | 永久黄网站色视频免费观看w | 国产高清永久免费 | 久久精品看片 | 成人网在线免费视频 | 国产免费大片 | 免费在线播放视频 | 丁香在线视频 | 日韩在线视频观看 | 深爱激情综合 | 五月天中文在线 | 五月天网页 | 丁香六月在线观看 | 91免费版在线 | 日韩乱码在线 | 日本精品一区二区在线观看 | 精品国产一二三四区 | 91天堂素人约啪 | 久久99久国产精品黄毛片入口 | 国产视频999| 日韩久久激情 | 国内一区二区视频 | 香蕉一区| 99精品区 | 五月婷婷一级片 | 香蕉影院在线播放 | www.xxxx欧美 | 日韩精品一二三 | 成人97人人超碰人人99 | 美女网站久久 | 天天射天天干天天操 | 久久久精品网站 | 国产原创在线视频 | 91精品国产91p65| 91精品国产一区二区在线观看 | 成人一区二区三区在线 | 亚洲91中文字幕无线码三区 | 日韩精品视频在线观看网址 | 亚洲九九精品 | 在线成人性视频 | 91人人人| 九色最新网址 | 最近中文字幕免费 | 天天干天天操天天拍 | 国产午夜麻豆影院在线观看 | 丁香六月在线观看 | 欧美另类亚洲 | 久久久国际精品 | 激情开心色 | 色婷婷电影网 | 看毛片网站 | 日本在线免费看 | 精品国产一区二区三区在线 | 国产一二三四在线视频 | 久久亚洲婷婷 | 五月婷婷久草 | 国产精品区在线观看 | 午夜 在线 | 91探花在线 | 免费中文字幕 | 狠狠狠色丁香婷婷综合久久88 | 精品久久久久久久久久久久久久久久久久 | 热久久在线视频 | 999久久久久| 欧美一二三区播放 | 91视频 - x99av| 伊色综合久久之综合久久 | 三级黄色a | 欧美日韩在线第一页 | 91一区啪爱嗯打偷拍欧美 | 97av色 | 一区二区三区四区在线免费观看 | 亚洲午夜久久久综合37日本 | 韩国精品视频在线观看 | 国产成人香蕉 | 国产91成人 | 日韩中文字幕免费视频 | 亚洲精品国产成人av在线 | 国产精品理论片在线观看 | 久久伊人操 | 西西444www大胆高清图片 | 国产精品欧美日韩 | 亚洲成人免费 | 国产福利91精品一区二区三区 | 国产一区在线免费观看视频 | 成人av一区二区兰花在线播放 | 国产精品系列在线 | 日本激情视频中文字幕 | 在线观看中文字幕dvd播放 | 天天操天天色天天 | 亚洲欧美日韩国产 | 成人在线观看av | 亚洲一区二区精品视频 | 成人影片在线播放 | 黄p网站在线观看 | 亚洲精品视频网站在线观看 | 国产精品久久久久永久免费看 | 91干干干 | 国产精品久久久久久久久久新婚 | 久久午夜免费观看 | 91大神在线看 | 色停停五月天 | 日日夜夜网 | 欧美久久久久久久久久久久久 | 久久影院亚洲 | 韩国在线一区二区 | 国产中文在线视频 | 中文字幕一区二区三区精华液 | 免费的黄色av | 在线观看视频日韩 | 免费看污在线观看 | 91精品一区二区三区蜜桃 | 中文字幕亚洲国产 | 婷五月天激情 | 午夜天使 | 欧美 日韩精品 | 国产日本三级 | 亚洲黄色免费电影 | 亚洲欧美精品在线 | 午夜电影一区 | 9在线观看免费高清完整版在线观看明 | 国产亚洲人 | 三级在线视频播放 | 日韩va亚洲va欧美va久久 | 亚洲成人精品在线观看 | 日韩一三区 | 国产香蕉97碰碰久久人人 | 91精品一区国产高清在线gif | 在线观影网站 | 免费91在线观看 | 日韩91av | 国产精品日韩在线观看 | 成人sm另类专区 | 日韩三级一区 | 亚洲视频免费 | 九九在线视频免费观看 | 97天天干| 日本久久成人中文字幕电影 | 一本到视频在线观看 | 亚洲精品视频网站在线观看 | 国产91在线免费视频 | 中文字幕一区二区三区四区视频 | 精品视频在线观看 | 亚洲日本一区二区在线 | 欧洲一区精品 | 91精品久久久久久综合五月天 | 五月天久久精品 | 999电影免费在线观看 | 国产一区成人在线 | 久久蜜臀一区二区三区av | 91午夜精品 | 最新极品jizzhd欧美 | 日韩av在线看| 美女久久 | 国产亚洲人成网站在线观看 | 天天综合久久 | 国产夫妻av在线 | 久久高清国产视频 | 99热这里有| 少妇bbw搡bbbb搡bbbb | 免费久久久久久 | 正在播放五月婷婷狠狠干 | 97国产超碰在线 | 日日天天干 | 中文字幕 国产专区 | 国产伦精品一区二区三区四区视频 | 午夜精品av | 麻豆国产网站入口 | 在线视频 91| 激情欧美一区二区三区免费看 | 五月婷婷综合久久 | 超碰在线资源 | 永久黄网站色视频免费观看w | 国产精品每日更新 | 欧美性视频网站 | zzijzzij亚洲成熟少妇 | 久久久久亚洲最大xxxx | 久久综合给合久久狠狠色 | 久久久精品一区二区三区 | 久久伊人国产精品 | 久久9视频 | 久久在线看 | ,午夜性刺激免费看视频 | 狠狠色丁香久久婷婷综 | 丁香激情综合 | 久久综合亚洲鲁鲁五月久久 | 日韩国产精品久久久久久亚洲 | 欧美精品少妇xxxxx喷水 | 四虎在线免费观看 | 色噜噜噜噜 | 久久精品国产美女 | av在线进入 | 国产精品一区二区久久精品 | 日韩一级电影在线观看 | 亚洲精品成人网 | 91精品国产综合久久久久久久 | 91视频在线播放视频 | 日韩欧美高清免费 | 天天玩天天干天天操 | 国产精品成人免费一区久久羞羞 | 亚洲一区二区精品视频 | 久久精品2 | 亚洲精品字幕在线 | 97国产在线视频 | 久久美女视频 | 欧美巨大| 国产精品第10页 | 久香蕉| 亚洲码国产日韩欧美高潮在线播放 | 在线观看成人av | 一区二区三区电影在线播 | 国产成人a v电影 | 国产小视频免费在线网址 | 最近中文字幕完整视频高清1 | 日韩免费中文字幕 | 在线观看国产一区二区 | 亚洲综合视频在线播放 | 五月天激情婷婷 | va视频在线观看 | 中文字幕a在线 | 婷婷久久五月天 | 精品女同一区二区三区在线观看 | av导航福利 | 久久免费视频2 | 欧美精品久久久久久久 | 色综合天天综合网国产成人网 | 深爱五月网| 国产色婷婷 | 国产精品综合久久久 | 国产手机在线精品 | 国内亚洲精品 | 欧美日韩视频在线观看免费 | 久久99在线视频 | 国产精品女视频 | 亚洲成aⅴ人在线观看 | 日韩中文字幕免费视频 | 久久久久激情电影 | 最近中文字幕大全 | 久精品视频在线 | av免费网页 | 日本在线观看中文字幕 | 在线电影播放 | 国产高清无线码2021 | 国产亚洲欧洲 | 伊人看片| 六月色播 | 96看片| 久久精品视频网 | 亚洲 欧洲av| 免费福利片2019潦草影视午夜 | 欧产日产国产69 | 中文字幕在线观看91 | 国产精品久久久久久久久毛片 | 免费日韩 精品中文字幕视频在线 | 91视频一8mav | 国产精品日韩在线播放 | 久久久免费精品 | 五月婷婷激情综合网 | 亚洲综合欧美激情 | 天天看天天干天天操 | 日韩丝袜在线观看 | 成人免费网站视频 | 91在线porny国产在线看 | 中文在线中文资源 | 久久久久网址 | 91香蕉视频720p | 97视频资源 | av在线最新 | 欧美午夜精品久久久久 | 国产原创在线观看 | 国产高清在线视频 | 免费观看久久久 | ,午夜性刺激免费看视频 | 天天干天天射天天插 | 一区二区三区免费在线观看 | 国产精品久久久久久久久久妇女 | 国产精品一区二区久久久 | 9999在线 | 亚洲精品国产综合99久久夜夜嗨 | 午夜久草 | 又黄又爽又色无遮挡免费 | 欧美精品久久久久久久久免 | 4hu视频 | 亚洲色图激情文学 | 亚洲国产精品第一区二区 | 手机在线看a | 99这里只有久久精品视频 | 91成版人在线观看入口 | 国产精品久久久久永久免费观看 | 中文字幕制服丝袜av久久 | 国产成人精品区 | 97色视频在线 | 国产婷婷精品 | 天天操天天拍 | 国产精品久久久久9999吃药 | 激情开心站 | 国产亚洲一区二区在线观看 | 夜夜爽www | 三级av在线播放 | 国产一区二区视频在线播放 | 国产福利小视频在线 | www.五月天 | 色综合久久久久综合99 | 国产精品中文久久久久久久 | 色网站国产精品 | 日韩网站在线播放 | 六月丁香在线视频 | 久久爱综合 | 色资源网免费观看视频 | 久久精品毛片 | 91夫妻视频 | 欧美精品久久人人躁人人爽 | 中文字幕在线成人 | 992tv成人免费看片 | 国内精品视频一区二区三区八戒 | 欧美在线一二 | 亚洲理论片在线观看 | 在线视频99 | 激情一区二区三区欧美 | 一区二区精品国产 | 婷婷丁香社区 | 亚洲春色综合另类校园电影 | 日韩欧美国产成人 | 欧美国产精品一区二区 | 日韩精品网址 | 中文字幕在线久一本久 | 久久国产热视频 | 99视频精品视频高清免费 | 狠狠干,狠狠操 | 欧美淫视频 | 亚洲干视频在线观看 | 欧美日韩国内在线 | 日韩欧美有码在线 | av片子在线观看 | 中文字幕一区二区三区在线视频 | 日日操狠狠干 | 最近中文字幕国语免费高清6 | 日韩精品一区二区久久 | 婷婷六月天天 | 欧美日韩亚洲一 | 人人爽人人片 | 911香蕉 | 十八岁以下禁止观看的1000个网站 | 久久精品欧美 | 国产黄a三级 | 中文字幕一区在线 | 国产尤物一区二区三区 | 欧美成人手机版 | 国产精品9999久久久久仙踪林 | 91成品人影院 | 久久色中文字幕 | 国产精品婷婷午夜在线观看 | 91成人精品一区在线播放69 | 欧美性色19p | 国产精品久久久久久久免费大片 | 一区二区不卡在线观看 | 91精品久久久久久综合乱菊 | 国产拍在线 | 91精品啪在线观看国产81旧版 | 久久久久久久综合色一本 | 人人超在线公开视频 | 国精产品999国精产品视频 | 51久久成人国产精品麻豆 | 99精品久久久久 | 粉嫩高清一区二区三区 | 亚洲视频免费在线看 | 国产成人久 | 亚洲精品动漫成人3d无尽在线 | 综合色伊人 | 超碰97免费观看 | 国产在线观看91 | 国产高清在线免费观看 | 麻豆国产在线播放 | 久久观看免费视频 | 欧美成人区 | 国产精品久久久久永久免费看 | 黄p在线播放 | 欧美午夜寂寞影院 | 深爱激情五月婷婷 | 黄色一级大片在线观看 | 亚洲精品在线网站 | 欧美一级日韩三级 | 国产资源网 | 狠狠色伊人亚洲综合网站色 | 中文字幕 婷婷 | 韩国精品福利一区二区三区 | 在线 精品 国产 | 就要干b| 亚洲乱码在线观看 | 日本视频精品 | 国产亚洲精品中文字幕 | 中文字幕欧美激情 | 99爱精品视频 | 午夜丰满寂寞少妇精品 | 亚洲精品国产品国语在线 | 黄色软件网站在线观看 | 观看免费av | 久久国产视频网站 | 99在线精品免费视频九九视 | 国产精品专区在线 | 欧美精品国产精品 | 在线国产福利 | 婷婷精品国产欧美精品亚洲人人爽 | 日韩黄色免费电影 | 日韩午夜精品福利 | 欧美亚洲成人xxx | 最近中文字幕在线 | 久久伊99综合婷婷久久伊 | 狠狠久久婷婷 | 国产一级视频在线免费观看 | 日本大尺码专区mv | www99精品| 2023亚洲精品国偷拍自产在线 | 97网在线观看 | av三级av | 天天操人 | 欧美analxxxx | 亚洲婷婷综合色高清在线 | 日日天天狠狠 | 久久人人爽人人片av | 久香蕉| 99激情网 | 国产亚洲成av人片在线观看桃 | 在线性视频日韩欧美 | 免费看的黄网站 | 国产精品都在这里 | 午夜婷婷网 | 在线视频亚洲 | 成人h视频在线 | 久久综合久久综合这里只有精品 | 夜夜天天干| 国产精品久久一区二区无卡 | 天天色播 | 不卡视频在线 | 国产日韩高清在线 | 国产91精品久久久久 | www.午夜色.com | 一级欧美一级日韩 | 91av在线视频播放 | 国产精品视频内 | 天天躁日日躁狠狠 | 国产在线免费观看 | 国产美女精品人人做人人爽 | 天天色棕合合合合合合 | 久久久九九| 国产视频在线观看一区 | 91福利视频免费 | 天天视频亚洲 | 久久久国产精品网站 | 欧美日韩亚洲第一 | 日本中文乱码卡一卡二新区 | 91黄色在线观看 | 粉嫩av一区二区三区入口 | 久草97| 国产一区久久 | av观看在线观看 | www.黄色片.com| 成人毛片一区 | 成人视屏免费看 | 精品久久久久久综合日本 | 成人免费观看大片 | 在线观看免费中文字幕 | 欧美一级片在线观看视频 | a级一a一级在线观看 | 日韩精品观看 | 午夜视频欧美 | 免费国产在线精品 | 欧美精品在线观看免费 | 丰满少妇一级 | 天天操夜夜操国产精品 | 国产精品久久久久久久久免费 | 四虎8848免费高清在线观看 | 波多野结衣在线视频一区 | 色天天综合久久久久综合片 | 国产福利一区在线观看 | 日韩在线观看视频中文字幕 | www99精品 | 激情久久久 | 狠狠成人 | 国产精品不卡一区 | 一级黄色在线视频 | 日韩亚洲欧美中文字幕 | 国产黑丝一区二区三区 | 特及黄色片 | 国产精品网红福利 | 日韩艹 | 成人黄色电影视频 | 中文字幕在线播放av | 久久久久久久久爱 | zzijzzij日本成熟少妇 | 国内视频| 久久国产色 | 日韩高清在线一区 | 精品在线99 | 国产在线色视频 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产精品videossex国产高清 | 欧美天天干| 91在线看网站 | 一级a性色生活片久久毛片波多野 | 中文字幕在线观看网 | 免费网站在线观看人 | 久久a级片 | 激情 一区二区 | 欧美日韩一区二区视频在线观看 | 免费看一级黄色大全 | 伊人电影天堂 | 日韩 在线 | 国产免费叼嘿网站免费 | 伊人va | 91视频最新网址 | 81精品国产乱码久久久久久 | 999亚洲国产996395 | 亚洲国产精品va在线看黑人动漫 | 精品国产99国产精品 | 91porny九色91啦中文 | 国产一级片毛片 | 在线三级播放 | 91传媒在线播放 | 国产精品原创在线 | 黄色99视频 | 狠狠色丁香久久婷婷综 | 国产裸体永久免费视频网站 | 欧美日韩aa | 久久黄视频 | 日韩一级理论片 | 免费三级在线 | 黄色免费电影网站 | 成人免费影院 | 久久久91精品国产一区二区精品 | 91亚色在线观看 | 日韩免费看的电影 | 免费不卡中文字幕视频 | 久久成电影 | 少妇bbbb搡bbbb桶 | 99爱国产精品 | 色婷婷综合久久久久中文字幕1 | 中文理论片 | 久久久久婷 | 丁香久久综合 | 免费在线91 | 国产精品久久久久影视 | www.99久久.com | 中文字幕高清在线 | 丁香花在线观看免费完整版视频 | 99免费精品| 特级黄色片免费看 | 91麻豆精品国产91久久久更新时间 | 在线免费观看羞羞视频 | 人人澡人人爽 | 久草在线免费在线观看 | 中文字幕av在线不卡 | 中文视频一区二区 | 中文字幕 国产 一区 | 国产亚洲精品女人久久久久久 | 亚洲精品黄色片 | 六月色丁香| 国产精品中文字幕在线观看 | 婷婷在线网 | 中文字幕在线播放日韩 | 天天操夜操 | 国产免费一区二区三区网站免费 | 午夜久久美女 | 欧美成人a在线 | 亚洲黄色免费在线 | 天天天天色射综合 | 久草在线在线精品观看 | 亚洲精品视频免费观看 | 激情网五月天 | 国产亚洲欧美精品久久久久久 | 国产在线观看一 | 国产成人av在线影院 | 国产中文字幕91 | 精品免费国产一区二区三区四区 | 国产精品一区二区av日韩在线 | 免费日韩av电影 | 精品国产区在线 | 欧美俄罗斯性视频 | 99在线观看 | 国产色小视频 | 波多野结衣视频一区二区 | 一区二区不卡高清 | 一级黄色大片 | 中文字幕av有码 | 在线看国产视频 | 成人午夜影视 | 在线免费视频a | 麻豆传媒在线免费看 | 国产一区国产精品 | 免费视频久久久久久久 | 永久免费精品视频网站 | 久久美女精品 | 久久亚洲电影 | 97免费在线观看视频 | 草樱av| 久久涩涩网站 | 丝袜一区在线 | 天天躁日日躁狠狠躁 | 亚洲欧洲国产视频 | 丁香激情网 | 91精品国产99久久久久 | 最近中文字幕mv免费高清在线 | 2024av在线播放| 91污视频在线观看 | 天天色影院| 亚洲黄色高清 | 奇米影视四色8888 | 日韩午夜高清 | 不卡的av在线 | 96av麻豆蜜桃一区二区 | 久久精品xxx | 国产高清不卡 | 在线观看亚洲a | 精品久久毛片 | 色99视频 | 黄色www免费 | 亚洲精品中文在线 | 精品女同一区二区三区在线观看 | 国产精品手机播放 | 丝袜美腿在线视频 | 国产91精品在线观看 | 麻豆国产露脸在线观看 | 国内丰满少妇猛烈精品播放 | 久久免费国产电影 | 美女视频免费一区二区 | 伊人亚洲综合网 | 久久综合欧美精品亚洲一区 | 五月激情五月激情 | 一区二区三区在线视频111 | 在线有码中文字幕 | www.色com | 亚洲天堂在线观看完整版 | 国产精品嫩草影院9 | 久久久久久久av | 成人av网址大全 | 久久精品79国产精品 | 欧美三级高清 | 又色又爽又激情的59视频 | 狠狠久久综合 | 国产成人久久av977小说 | 一区二区三区高清不卡 | 国产女教师精品久久av | 九九热视频在线免费观看 | 成年人在线观看网站 | 蜜臀av性久久久久蜜臀av | 国产高清精 | 国产亚洲人成网站在线观看 | 丁香网五月天 | 亚洲色图美腿丝袜 | 国产成人一二片 | 亚洲乱码精品久久久久 | 五月天婷婷在线观看视频 | 亚洲一区av | 日本久久电影网 | 久久久久久久久毛片精品 | 一区二区精品在线视频 | www.色com | 成人97人人超碰人人99 | 色多多视频在线 | 亚洲乱亚洲乱亚洲 | 免费观看国产成人 | 九九九九九精品 | 国产精品女人久久久 |