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

歡迎訪問 生活随笔!

生活随笔

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

vue

Vue框架详解(适合Java学习者)

發(fā)布時(shí)間:2024/1/1 vue 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue框架详解(适合Java学习者) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、前言
  • 二、Vue概述
  • 三、MVVM架構(gòu)
    • 1.什么是MVVM
    • 2.MVVM的好處
    • 3.MVVM圖解
  • 四、第一個(gè)Vue程序
  • 五、Vue七大屬性
  • 六、常用指令
    • 1.綁定屬性(v-bind)
    • 2.判斷(v-if)
    • 3.循環(huán)(v-for)
    • 4.綁定事件(v-on)
  • 七、數(shù)據(jù)雙向綁定
  • 八、Vue組件
  • 九、Vue生命周期
    • 1.Vue生命周期理解
    • 2.Vue生命周期圖解
  • 九、Axios異步通信
  • 十、Vue計(jì)算屬性
  • 十一、插槽slot
  • 十二、自定義事件內(nèi)容分發(fā)
  • 十三、vue-cli腳手架
    • 1.什么是vue-cli
    • 2.使用vue-cli的環(huán)境前提
    • 3.創(chuàng)建一個(gè)vue-cli程序
  • 十四、Webpack打包器
    • 1.什么是webpack
    • 2.安裝webpack
    • 3.使用webpack
  • 十五、vue-router路由
  • 十六、vue + elementUI整合小案例
  • 十七、路由嵌套
  • 十八、參數(shù)傳遞
    • 方式一:取值
    • 方式二:使用props減少耦合
  • 十九、重定向
  • 二十、路由模式與處理404
    • 1.路由模式
    • 2.處理404
  • 二十一、路由鉤子與異步請求
    • 1.路由鉤子函數(shù)
    • 2.在鉤子函數(shù)中使用異步通信

一、前言

該技術(shù)博客是關(guān)于狂神說Vue教程的詳細(xì)總結(jié),希望能給大家?guī)韼椭?#xff01;

二、Vue概述

Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架,該框架可以自底向上逐層應(yīng)用。Vue的核心庫只關(guān)注視圖層,不僅簡單而且便于與第三方庫(如: vue-router: 跳轉(zhuǎn),vue-resource: 通信,vuex:管理)或項(xiàng)目整合

Vue是漸進(jìn)式JavaScript框架,所謂漸進(jìn)式就是逐步實(shí)現(xiàn)新特性的意思,如實(shí)現(xiàn)模塊化開發(fā)、路由、狀態(tài)管理等新特性。其特點(diǎn)是綜合了Angular(模塊化)React(虛擬DOM) 的優(yōu)點(diǎn),并有自己的特色功能:計(jì)算屬性

三、MVVM架構(gòu)

1.什么是MVVM

MVVM(Model-View-ViewModel) 源自于經(jīng)典的MVC (ModI-View-Controller) 模式。MVVM的核心是ViewModel層,負(fù)責(zé)轉(zhuǎn)換Model中的數(shù)據(jù)對象來讓數(shù)據(jù)變得更容易管理和使用,其作用如下:

  • 該層向上與視圖層進(jìn)行雙向數(shù)據(jù)綁定
  • 向下與Model層通過接口請求進(jìn)行數(shù)據(jù)交互

ViewModel能夠觀察到數(shù)據(jù)變化,并對視圖對應(yīng)的內(nèi)容進(jìn)行更新
ViewModel能夠監(jiān)聽到視圖變化,并能夠通知數(shù)據(jù)發(fā)生變化

2.MVVM的好處

MVVM模式和MVC模式一樣,主要目的是分離視圖(View)和模型(Model),有幾大好處:

  • 低耦合:視圖(View)可以獨(dú)立于Model變化和修改,一個(gè)ViewModel可以綁定到不同的View上,當(dāng)View變化的時(shí)候Model可以不變,當(dāng)Model變化的時(shí)候View也可以不變。
  • 可復(fù)用:你可以把一些視圖邏輯放在一個(gè)ViewModel里面,讓很多View重用這段視圖邏輯。
  • 獨(dú)立開發(fā):開發(fā)人員可以專注于業(yè)務(wù)邏輯和數(shù)據(jù)的開發(fā)(ViewModel),設(shè)計(jì)人員可以專注于頁面設(shè)計(jì)。
  • 可測試:界面素來是比較難于測試的,而現(xiàn)在測試可以針對ViewModel來寫。

3.MVVM圖解

  • Model : 模型層,在這里表示JavaScript對象
  • View : 視圖層,在這里表示DOM (HTML操作的元素)
  • ViewModel : 連接視圖和數(shù)據(jù)的中間件,Vue.js就是MVVM中的ViewModel層的實(shí)現(xiàn)者在MVVM架構(gòu)中,是不允許數(shù)據(jù)和視圖直接通信的,只能通過ViewModel來通信,而ViewModel就是定義了一個(gè)Observer觀察者
  • ViewModel來通信,而ViewModel就是定義了一個(gè)Observer觀察者
  • ViewModel 能夠觀察到數(shù)據(jù)的變化,并對視圖對應(yīng)的內(nèi)容進(jìn)行更新
  • ViewModel 能夠監(jiān)聽到視圖的變化,并能夠通知數(shù)據(jù)發(fā)生改變

至此我們就明白了,Vue就是一個(gè)MVVM的實(shí)現(xiàn)者,它的核心就是實(shí)現(xiàn)了DOM監(jiān)聽數(shù)據(jù)綁定

四、第一個(gè)Vue程序

我們在硬盤中創(chuàng)建一個(gè)文件夾,叫做vue-first,我們使用IDEA通過Open的方式打開vue-first這個(gè)空文件夾:

我們在創(chuàng)建的項(xiàng)目中,創(chuàng)建一個(gè)index.html文件,就可以開始我們第一個(gè)Vue程序的編寫了!

但是在編寫代碼之前,我們需要打開setting找到Plugins,安裝好Vue的插件:

第一個(gè)Vue程序代碼展示:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><!--1.導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> </head> <body><!--View層 模板--> <div id="app">{{message}} </div><script>var vm = new Vue({el : '#app',/*Model層 數(shù)據(jù)*/data : {message : "Hello Vue"}}); </script></body> </html>

五、Vue七大屬性

  • el:用來指示vue編譯器從什么地方開始解析vue語法
  • data:用來組織從view中抽象出來的屬性,可以說將視圖的數(shù)據(jù)抽象出來存放在data中
  • template:用來設(shè)置模板,會替換頁面元素
  • methods:放置在頁面中的業(yè)務(wù)邏輯,方法一般放在methods中
  • render:創(chuàng)建真正的虛擬DOM
  • computed:用于計(jì)算屬性
  • watch:監(jiān)聽data中的數(shù)據(jù)變化,兩個(gè)參數(shù),一個(gè)返回新值,一個(gè)返回舊值
  • watch: function(new,old){}

    六、常用指令

    我們接下來來講解指令,指令的前綴有v-,它們會在渲染的DOM上應(yīng)用特殊的響應(yīng)式行為。

    1.綁定屬性(v-bind)

    我們還可以使用v-bind來綁定元素特性

    <!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml"> <head><meta charset="UTF-8"><title>Title</title><!--1.導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> </head> <body><!--View層 模板--> <div id="app"><span v-bind:title="message">將鼠標(biāo)懸浮在此段文字上</span> </div><script>var vm = new Vue({el : '#app',/*Model層 數(shù)據(jù)*/data : {message : "Hello Vue"}}); </script></body> </html>

    2.判斷(v-if)

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><!--1.導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> </head> <body> <!--View層--> <div id="app"><h1 v-if="ok">Yes</h1><h1 v-else>No</h1> </div><script>var app = new Vue({el: '#app',data: {ok: true}}) </script> </body> </html>

    3.循環(huán)(v-for)

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><!--1.導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> </head> <body> <!--View層--> <div id="app"><li v-for="item in items">{{item.message}}</li> </div><script>var app = new Vue({el: '#app',data: {items: [{message: '我要學(xué)Java'},{message: '我要學(xué)前端'},{message: '我要學(xué)MySQL'}]}}) </script> </body> </html>

    4.綁定事件(v-on)

    可以用v-on指令監(jiān)聽DOM事件,并在觸發(fā)時(shí)運(yùn)行一些JavaScript代碼

    <!DOCTYPE html> <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"> <head><meta charset="UTF-8"><title>Title</title><!--1.導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> </head> <body> <!--View層--> <div id="app"><button v-on:click="sayHi">click me!</button> </div><script>var app = new Vue({el: '#app',data: {message: "我愛敲代碼"},//方法必須定義在Vue的methods對象中,通過v-on綁定methods: { sayHi: function () {alert(this.message)}}}) </script> </body> </html>

    總結(jié):我們想要數(shù)據(jù)放在data屬性中,想要方法放在methods屬性中。想要綁定屬性用v-bind,想要綁定事件用v-on,想要綁定數(shù)據(jù)用{{ }}

    七、數(shù)據(jù)雙向綁定

    雙向綁定是vue的精髓,當(dāng)數(shù)據(jù)發(fā)生變化時(shí),視圖就發(fā)生變化。當(dāng)視圖發(fā)生變化時(shí),數(shù)據(jù)也跟著發(fā)生變化!

    <!DOCTYPE html> <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"> <head><meta charset="UTF-8"><title>Title</title><!--1.導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> </head> <body> <!--View層--> <div id="app"><input type="text" v-model="message"><br>{{message}} </div><script>var app = new Vue({el: '#app',data: {message: "我寫啥,你抄啥"}}) </script> </body> </html>

    八、Vue組件

    組件是可復(fù)用的Vue實(shí)例,說白了就是一組可以重復(fù)使用的模板,跟JSTL的自定義標(biāo)簽、Thymeleaf的th:fragment 等框架有著異曲同工之妙。通常一個(gè)應(yīng)用會以一棵嵌套的組件樹的形式來組織:

    如果我們需要傳遞參數(shù)到組件,此時(shí)就可以使用props屬性

    <!DOCTYPE html> <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"> <head><meta charset="UTF-8"><title>Title</title><!--1.導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> </head> <body> <!--View層--> <div id="app"><xu v-for="item in items" v-bind:bin="item"></xu> </div><script>//Vue.component()方法注冊一個(gè)組件Vue.component("xu",{//傳遞參數(shù)用props接收props: ['bin'],//組件模板,可以使用props中的參數(shù)template: '<li>{{bin}}</li>'})var app = new Vue({el: '#app',data: {items: ["java","Linux","前端"]}}) </script> </body> </html>

    九、Vue生命周期

    1.Vue生命周期理解

    Vue實(shí)例有一個(gè)完整的生命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模板、掛載DOM、渲染→更新→渲染、卸載等一系列過程,我們稱這是Vue的生命周期。通俗說就是Vue實(shí)例從創(chuàng)建到銷毀的過程,就是生命周期。

    在Vue的整個(gè)生命周期中,它提供了一系列的事件,可以讓我們在事件觸發(fā)時(shí)注冊JS方法,可以讓我們用自己注冊的JS方法控制整個(gè)大局,在這些事件響應(yīng)方法中的this直接指向的是Vue的實(shí)例。

    2.Vue生命周期圖解

    九、Axios異步通信

    由于Vue.js是一個(gè)視圖層框架且作者(尤雨溪) 嚴(yán)格準(zhǔn)守SoC (關(guān)注度分離原則),所以Vue.js并不包含AJAX的通信功能,為了解決通信問題,作者單獨(dú)開發(fā)了一個(gè)名為vue-resource的插件,不過在進(jìn)入2.0 版本以后停止了對該插件的維護(hù)并推薦了Axios 框架。少用jQuery,因?yàn)樗僮鱀om太頻繁!

    先在IDEA中創(chuàng)建一個(gè)data.json文件,模擬Json數(shù)據(jù):

    {"name": "xu","age": "20","sex": "男","url": "https://www.baidu.com","address": {"street": "步行街","city": "大連","country": "中國"},"links": [{"name": "bilibili","url": "https://www.bilibili.com"},{"name": "baidu","url": "https://www.baidu.com"},{"name": "xu video","url": "https://www.4399.com"}] }

    異步通信代碼展示:

    <!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml"> <head><meta charset="UTF-8"><title>Title</title><!--導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script><!--導(dǎo)入axios--><script src="https://cdn.bootcdn.net/ajax/libs/axios/0.19.2/axios.min.js"></script> </head> <body> <div id="vue"><div>{{info.name}}</div><div>{{info.address.street}}</div><a v-bind:href="info.url">點(diǎn)我進(jìn)入百度</a> </div><script>var vm = new Vue({el: '#vue',//data:vm的屬性data: {}//data():vm方法data(){return{//請求返回參數(shù)的格式,得和data.json對應(yīng)info: {name: null,address: {street: null,city: null,country: null},url: null}}},//鉤子函數(shù),鏈?zhǔn)骄幊?#xff0c;ES6新特性mounted(){axios.get('../data.json').then(response=>(this.info = response.data))}}) </script> </body> </html>

    十、Vue計(jì)算屬性

    計(jì)算屬性的重點(diǎn)突出在屬性兩個(gè)字上,首先它是個(gè)屬性,其次這個(gè)屬性有計(jì)算的能力,這里的計(jì)算就是個(gè)函數(shù)。
    簡單點(diǎn)說,它就是一個(gè)能夠?qū)⒂?jì)算結(jié)果緩存起來的屬性(將行為轉(zhuǎn)化成了靜態(tài)的屬性),可以想象為緩存

    <!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml"> <head><meta charset="UTF-8"><title>Title</title><!--導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> </head> <body> <div id="vue"><p>{{currentTime1()}}</p><p>{{currentTime2}}</p> </div><script>var app = new Vue({el: '#vue',methods: {currentTime1: function () {return Date.now()}},//計(jì)算屬性:methods和computed中的方法不能重名,重名了只會調(diào)用methods的方法computed: {currentTime2: function () {return Date.now()}}}) </script> </body> </html>

    說明

    • methods:定義方法,調(diào)用方法需要帶括號
    • computed:定義計(jì)算屬性,因?yàn)槭菍傩运哉{(diào)用不需要帶括號

    結(jié)論:調(diào)用方法時(shí),每次都需要進(jìn)行計(jì)算,既然有計(jì)算過程則必定產(chǎn)生系統(tǒng)開銷,那如果這個(gè)結(jié)果是不經(jīng)常變化的呢?此時(shí)就可以考慮將這個(gè)結(jié)果緩存起來,采用計(jì)算屬性可以很方便的做到這一點(diǎn),計(jì)算屬性的主要特性就是為了將不經(jīng)常變化的計(jì)算結(jié)果進(jìn)行緩存,以節(jié)約我們的系統(tǒng)開銷

    十一、插槽slot

    在Vue.js中我們使用 元素作為承載分發(fā)內(nèi)容的出口,作者稱其為插槽,可以應(yīng)用在組合組件的場景中;

    <!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml"> <head><meta charset="UTF-8"><title>Title</title><!--導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> </head> <body> <div id="app"><todo><todo-title slot="todo-title" v-bind:title="title"></todo-title><todo-items slot="todo-items" v-for="item in todoItems" v-bind:item="item"></todo-items></todo> </div><script>//slot 插槽 這個(gè)組件要定義在前面不然出不來數(shù)據(jù)Vue.component("todo", {template: '<div>\<slot name="todo-title"></slot>\<ul>\<slot name="todo-items"></slot>\</ul>\<div>'});Vue.component("todo-title",{props: ['title'],template: '<div>{{title}}</div>'});Vue.component("todo-items",{props: ['item'],template: '<li>{{item}}</li>'})var app = new Vue({el: '#app',data: {title: "學(xué)習(xí)內(nèi)容",todoItems: ['學(xué)習(xí)Java','學(xué)習(xí)前端','學(xué)習(xí)運(yùn)維']}}) </script> </body> </html>

    十二、自定義事件內(nèi)容分發(fā)

    通過以上代碼不難發(fā)現(xiàn),數(shù)據(jù)項(xiàng)在Vue的實(shí)例中,但刪除操作要在組件中完成,那么組件如何才能刪除Vue實(shí)例中的數(shù)據(jù)呢?此時(shí)就涉及到參數(shù)傳遞與事件分發(fā)了,Vue為我們提供了自定義事件的功能很好的幫助我們解決了這個(gè)問題;使用this.$emit(‘自定義事件名’,參數(shù))

    <!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml"> <head><meta charset="UTF-8"><title>Title</title><!--導(dǎo)入vue.js--><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> </head> <body> <div id="app"><todo><todo-title slot="todo-title" v-bind:title="title"></todo-title><todo-items slot="todo-items" v-for="(item,index) in todoItems" v-bind:item="item" v-bind:index="index"v-on:remove="removeItems(index)" v-bind:key="index"></todo-items></todo> </div><script>//slot 插槽 這個(gè)組件要定義在前面不然出不來數(shù)據(jù)Vue.component("todo", {template: '<div>\<slot name="todo-title"></slot>\<ul>\<slot name="todo-items"></slot>\</ul>\<div>'});Vue.component("todo-title",{props: ['title'],template: '<div>{{title}}</div>'});Vue.component("todo-items",{props: ['item','index'],template: '<li>{{item}}<button v-on:click="remove">刪除</button></li>',methods: {remove: function (index) {//this.$emit 自定義事件分發(fā)this.$emit('remove',index)}}})var app = new Vue({el: '#app',data: {title: "學(xué)習(xí)內(nèi)容",todoItems: ['學(xué)習(xí)Java','學(xué)習(xí)前端','學(xué)習(xí)運(yùn)維']},methods: {removeItems: function (index) {this.todoItems.splice(index,1); //一次刪除一個(gè)元素}}}) </script> </body> </html>

    十三、vue-cli腳手架

    1.什么是vue-cli

    vue-cli 官方提供的一個(gè)腳手架,用于快速生成一個(gè) vue 的項(xiàng)目模板;

    預(yù)先定義好的目錄結(jié)構(gòu)及基礎(chǔ)代碼,就好比咱們在創(chuàng)建 Maven 項(xiàng)目時(shí)可以選擇創(chuàng)建一個(gè)骨架項(xiàng)目,這個(gè)骨架項(xiàng)目就是腳手架,我們的開發(fā)更加的快速;

    主要目的:

    • 統(tǒng)一目錄結(jié)構(gòu)
    • 本地調(diào)試
    • 熱部署
    • 單元測試
    • 集成打包上線

    2.使用vue-cli的環(huán)境前提

    我們使用vue-cli之前,需要安裝node.js!
    安裝網(wǎng)址:http://nodejs.cn/download/

    安裝成功后:

    • cmd中輸入node -v,查看是否能正確打印版本號
    • cmd中輸入npm -v,查看是否能正確打印版本號

    安裝完node.js之后,就自帶npm,這個(gè)npm就是一個(gè)軟件包管理工具(類似Maven)

    為了讓我們node.js運(yùn)行更快,我們需要安裝node.js的淘寶鏡像加速器(cnpm)

    # -g 就是全局安裝 npm install cnpm -g # 或使用如下語句解決 npm 速度慢的問題 npm install --registry=https://registry.npm.taobao.org

    安裝完淘寶鏡像加速器之后,安裝vue-cli

    #在命令臺輸入 cnpm install vue-cli -g #查看是否安裝成功 vue list

    3.創(chuàng)建一個(gè)vue-cli程序

    創(chuàng)建一個(gè)文件夾,作為vue-cli程序的文件夾:D:\IdeaProjects\vue

    創(chuàng)建一個(gè)基于webpack模板的vue應(yīng)用程序:

    # 這里的myvue是項(xiàng)目名稱 vue init webpack myvue

    項(xiàng)目下載完成后,cmd中的選項(xiàng)一路選No

    然后我們需要在命令行中輸入下列三個(gè)命令:

    //進(jìn)入myvue項(xiàng)目中 cd myvue//安裝該項(xiàng)目的所有依賴環(huán)境 npm install//啟動了當(dāng)前項(xiàng)目 npm run dev

    這樣我們就創(chuàng)建完了第一個(gè)vue-cli項(xiàng)目

    十四、Webpack打包器

    1.什么是webpack

    webpack是一個(gè)現(xiàn)代JavaScript應(yīng)用程序的靜態(tài)模塊打包器(module bundler)。當(dāng)webpack處理應(yīng)用程序時(shí),它會遞歸地構(gòu)建一個(gè)依賴關(guān)系圖(dependency graph),其中包含應(yīng)用程序需要的每個(gè)模塊,然后將所有這些模塊打包成一個(gè)或多個(gè)bundle.

    Webpack是當(dāng)下最熱門的前端資源模塊化管理和打包工具,它可以將許多松散耦合的模塊按照依賴和規(guī)則打包成符合生產(chǎn)環(huán)境部署的前端資源。還可以將按需加載的模塊進(jìn)行代碼分離,等到實(shí)際需要時(shí)再異步加載。

    2.安裝webpack

    webpack是一個(gè)模塊加載器兼打包工具,它能把各種資源都作為模塊來處理和使用,使用該工具的目的:把ES6規(guī)范的代碼打包編譯成ES5規(guī)范的代碼,使所有瀏覽器都能運(yùn)行!

    安裝命令:

    npm install webpack -g npm install webpack-cl -g

    測試成功安裝:

    webpack -v webpack-cli -v

    這樣我們就安裝完成了!

    3.使用webpack

    創(chuàng)建一個(gè)文件夾:D:\IdeaProjects\vue\webpack-study
    使用idea打開該文件夾!

    在idea中創(chuàng)建一個(gè)modules目錄,里面創(chuàng)建一個(gè)hello.js文件:

    //暴露一個(gè)方法 exports.sayHi = function () {document.write("<h1>徐某學(xué)ES6</h1>") }

    創(chuàng)建main.js 當(dāng)作是js主入口 , main.js 請求hello.js 調(diào)用sayHi()方法:

    var hello = require("./hello") hello.sayHi();

    在主目錄創(chuàng)建webpack.config.js , webpack.config.js 這個(gè)相當(dāng)于webpack的配置文件:

    module.exports = {//enrty請求main.js的文件entry: './modules/main.js',//output是輸出的位置和名字output: {filename: "./js/bundle.js"} };

    在idea命令臺輸入webpack命令(idea要設(shè)置管理員啟動)
    完成上述操作之后會在主目錄生成一個(gè)dist文件 生成的js文件夾路徑為 /dist/js/bundle.js

    接下來,在主目錄創(chuàng)建index.html 導(dǎo)入bundle.js

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><!--前端的模塊化開發(fā)--> <script src="dist/js/bundle.js"></script></body> </html>

    十五、vue-router路由

    Vue Router是Vue.js官方的路由管理器(視圖跳轉(zhuǎn))。它和Vue.js的核心深度集成,讓構(gòu)建單頁面應(yīng)用變得易如反掌

    vue-router 是一個(gè)插件包,所以我們還是需要用 npm/cnpm 來進(jìn)行安裝的。打開命令行工具,進(jìn)入你的項(xiàng)目目錄,輸入下面命令:

    npm install vue-router --save-dev

    在components目錄下存放我們編寫的組件,定義Content.vue和Main.vue兩個(gè)組件:

    <template><h1>內(nèi)容頁</h1> </template><script>export default {name: "Content"} </script><style scoped></style>========================================================================<template><h1>首頁</h1> </template><script>export default {name: "Main"} </script><style scoped></style>

    創(chuàng)建一個(gè)router目錄,專門存放路由,文件名為index.js:

    import Vue from 'vue' //導(dǎo)入路由插件 import VueRouter from 'vue-router' //導(dǎo)入兩個(gè)定義的組件 import Content from '../components/Content' import Main from '../components/Main'//安裝路由 Vue.use(VueRouter)//配置導(dǎo)出路由 export default new VueRouter({routes: [{//路由路徑path: '/content',//跳轉(zhuǎn)的組件component: Content},{//路由路徑path: '/main',//跳轉(zhuǎn)的組件component: Main}] });

    在main.js中配置路由:

    import Vue from 'vue' import App from './App' import router from './router' //自動掃描里面的路由配置new Vue({el: '#app',//配置路由router,components: { App },template: '<App/>' })

    在App.vue中使用路由:

    <template><div id="app"><h1>Vue-Router</h1><router-link to="/main">首頁</router-link><router-link to="/content">內(nèi)容頁</router-link><!--展示template模板--><router-view></router-view></div> </template><script>export default {name: 'App' } </script><style> #app {font-family: 'Avenir', Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px; } </style>

    啟動測試一下 : npm run dev

    其實(shí),main.js配置完了就基本不需要變動了,我們只需要添加組件,在index.js中配置組件路徑,最后在App.vue中添加router-link,基本就足夠了!

    三者關(guān)系:index.html 調(diào)用 main.js 調(diào)用 App.vue

    十六、vue + elementUI整合小案例

    在Idea項(xiàng)目目錄中創(chuàng)建一個(gè)hello-vue項(xiàng)目,在該目錄下可以使用命令行(命令行要使用管理員模式!):

    //創(chuàng)建一個(gè)基于webpack模板的vue應(yīng)用程序 vue init webpack hello-vue

    安裝依賴,我們需要安裝vue-router,element-ui,sass-loader和node-sass四個(gè)插件:

    //進(jìn)入目錄 cd hello-vue//安裝vue-router npm install vue-router --save-dev//安裝element ui npm i element-ui -S//安裝依賴 npm install //安裝 SASS 加載器 cnpm install sass-loader node-sass --save-dev//啟動測試 npm run dev

    npm命令解釋:

    安裝模塊到項(xiàng)目目錄下 npm install moduleName-g 的意思是將模塊安裝到全局,具體安裝到磁盤的哪個(gè)位置,要看 npm config prefix的位置 npm install -g moduleName–save的意思是將模塊安裝到項(xiàng)目目錄下,并在package文件的dependencies節(jié)點(diǎn)寫入依賴,-S為該命令的縮寫 npm install moduleName -save–save-dev的意思是將模塊安裝到項(xiàng)目目錄下,并在package文件的devDependencies節(jié)點(diǎn)寫入依賴,-D為該命令的縮寫 npm install moduleName -save-dev

    接下來,我們打開IDEA將我們創(chuàng)建的項(xiàng)目open一下!

    創(chuàng)建一個(gè)views目錄,編寫兩個(gè)組件:Login.vue和Main.vue

    <template><h1>首頁</h1> </template><script>export default {name: "Main"} </script><style scoped></style>========================================================================<template xmlns:v-on=""><div><el-form ref="loginForm" :model="form" :rules="rules" label-width="80px" class="login-box"><h3 class="login-title">歡迎登錄</h3><el-form-item label="賬號" prop="username"><el-input type="text" placeholder="請輸入賬號" v-model="form.username"/></el-form-item><el-form-item label="密碼" prop="password"><el-input type="password" placeholder="請輸入密碼" v-model="form.password"/></el-form-item><el-form-item><el-button type="primary" v-on:click="onSubmit('loginForm')">登錄</el-button></el-form-item></el-form><el-dialogtitle="溫馨提示":visible.sync="dialogVisible"width="30%":before-close="handleClose"><span>請輸入賬號和密碼</span><span slot="footer" class="dialog-footer"><el-button type="primary" @click="dialogVisible = false">確 定</el-button></span></el-dialog></div> </template><script>export default {name: "Login",data() {return {form: {username: '',password: ''},// 表單驗(yàn)證,需要在 el-form-item 元素中增加 prop 屬性rules: {username: [{required: true, message: '賬號不可為空', trigger: 'blur'}],password: [{required: true, message: '密碼不可為空', trigger: 'blur'}]},// 對話框顯示和隱藏dialogVisible: false}},methods: {onSubmit(formName) {// 為表單綁定驗(yàn)證功能this.$refs[formName].validate((valid) => {if (valid) {// 使用 vue-router 路由到指定頁面,該方式稱之為編程式導(dǎo)航this.$router.push("/main");} else {this.dialogVisible = true;return false;}});}}} </script><style lang="scss" scoped>.login-box {border: 1px solid #DCDFE6;width: 350px;margin: 180px auto;padding: 35px 35px 15px 35px;border-radius: 5px;-webkit-border-radius: 5px;-moz-border-radius: 5px;box-shadow: 0 0 25px #909399;}.login-title {text-align: center;margin: 0 auto 40px auto;color: #303133;} </style>

    創(chuàng)建一個(gè)router目錄,編寫index.js文件:

    import Vue from 'vue' import Router from 'vue-router'//添加路由 import Main from '../views/Main' import Login from '../views/Login'Vue.use(Router);export default new Router({routes: [{path: '/main',component: Main},{path: '/login',component: Login}] })

    在main.js中編寫:

    import Vue from 'vue' import App from './App'import router from './router'//導(dǎo)入elementUI import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css'Vue.use(router); Vue.use(ElementUI)Vue.config.productionTip = falsenew Vue({el: '#app',router,render: h => h(App) //ElementUI })

    最后App.vue中代碼如下:

    <template><div id="app"><router-link to="/login">登錄頁</router-link><router-view></router-view></div> </template><script>export default {name: 'App' } </script><style>#app {font-family: 'Avenir', Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;} </style>

    效果如下:

    十七、路由嵌套

    ? 嵌套路由又稱子路由,在實(shí)際應(yīng)用中,通常由多層嵌套的組件組合而成。

    在 views/user 目錄下創(chuàng)建一個(gè)名為 Profile.vue 的視圖組件:

    <template><h1>個(gè)人信息</h1> </template><script>export default {name: "UserProfile"} </script><style scoped></style>

    在用戶列表組件在 views/user 目錄下創(chuàng)建一個(gè)名為 List.vue 的視圖組件:

    <template><h1>用戶列表</h1> </template><script>export default {name: "UserList"} </script><style scoped></style>

    修改首頁視圖,我們修改 Main.vue 視圖組件,此處使用了 ElementUI 布局容器組件,代碼如下:

    <template><div><el-container><el-aside width="200px"><el-menu :default-openeds="['1']"><el-submenu index="1"><template slot="title"><i class="el-icon-caret-right"></i>用戶管理</template><el-menu-item-group><el-menu-item index="1-1"><!--插入的地方--><router-link to="/user/profile">個(gè)人信息</router-link></el-menu-item><el-menu-item index="1-2"><!--插入的地方--><router-link to="/user/list">用戶列表</router-link></el-menu-item></el-menu-item-group></el-submenu><el-submenu index="2"><template slot="title"><i class="el-icon-caret-right"></i>內(nèi)容管理</template><el-menu-item-group><el-menu-item index="2-1">分類管理</el-menu-item><el-menu-item index="2-2">內(nèi)容列表</el-menu-item></el-menu-item-group></el-submenu><el-submenu index="3"><template slot="title"><i class="el-icon-caret-right"></i>系統(tǒng)管理</template><el-menu-item-group><el-menu-item index="3-1">用戶設(shè)置</el-menu-item></el-menu-item-group></el-submenu></el-menu></el-aside><el-container><el-header style="text-align: right; font-size: 12px"><el-dropdown><i class="el-icon-setting" style="margin-right: 15px"></i><el-dropdown-menu slot="dropdown"><el-dropdown-item>個(gè)人信息</el-dropdown-item><el-dropdown-item>退出登錄</el-dropdown-item></el-dropdown-menu></el-dropdown></el-header><el-main><!--在這里展示視圖--><router-view /></el-main></el-container></el-container></div> </template> <script>export default {name: "Main"} </script> <style scoped lang="scss">.el-header {background-color: #B3C0D1;color: #333;line-height: 60px;}.el-aside {color: #333;} </style>

    配置嵌套路由修改 router 目錄下的 index.js 路由配置文件,使用children放入main中寫入子模塊,代碼如下:

    import Vue from 'vue' import Router from 'vue-router'//添加路由 import Main from '../views/Main' import Login from '../views/Login'import UserList from '../views/user/List' import UserProfile from '../views/user/Profile'Vue.use(Router);export default new Router({routes: [{path: '/main',component: Main,//嵌套路由children: [{path: '/user/profile',component: UserProfile},{path: '/user/list',component: UserList}]},{path: '/login',component: Login}] })

    效果展示如下:

    十八、參數(shù)傳遞

    接下來,還是使用上述代碼進(jìn)行測試!

    方式一:取值

  • 修改路由配置, 主要是router下的index.js中的 path 屬性中增加了 :id 這樣的占位符:
  • 此時(shí)我們在Main.vue中的route-link位置處 to 改為了 :to,是為了將這一屬性當(dāng)成對象使用,注意 router-link 中的 name 屬性名稱 一定要和 路由中的 name 屬性名稱 匹配,因?yàn)檫@樣 Vue 才能找到對應(yīng)的路由路徑
  • 在要展示的組件Profile.vue中接收參數(shù) 使用 {{$route.params.id}}來接收
  • 方式二:使用props減少耦合

  • 修改路由配置 , 主要在router下的index.js中的路由屬性中增加了 props: true 屬性
  • 傳遞參數(shù)和之前一樣 在Main.vue中修改router-link地址
  • 在Profile.vue接收參數(shù)為目標(biāo)組件增加 props 屬性

    效果如下:
  • 十九、重定向

    在router下面index.js的配置:

    {path: '/goHome',redirect: '/main' }

    這里定義了兩個(gè)路徑,一個(gè)是 /main ,一個(gè)是 /goHome,其中 /goHome 重定向到了 /main 路徑,由此可以看出重定向不需要定義組件;

    使用的話,只需要在Main.vue設(shè)置對應(yīng)路徑即可;

    二十、路由模式與處理404

    1.路由模式

    路由模式有兩種:

    • hash:路徑帶 # 符號,如 http://localhost/#/login
    • history:路徑不帶 # 符號,如 http://localhost/login

    修改路由配置,index.js代碼如下:

    2.處理404

    創(chuàng)建于給NotFound.vue的視圖組件:

    <template><div><h1>404,你的頁面走丟了</h1></div> </template><script>export default {name: "NotFound"} </script><style scoped></style>

    修改路由配置,代碼如下:

    import NotFound from '../views/NotFound'export default new Router({mode: 'history',routes: [{path: '*',component: NotFound}] })

    當(dāng)我們輸入的地址不正確,會出現(xiàn)以下效果:

    二十一、路由鉤子與異步請求

    1.路由鉤子函數(shù)

    beforeRouteEnter:在進(jìn)入路由前執(zhí)行
    beforeRouteLeave:在離開路由前執(zhí)行

    在Profile.vue中寫:

    <template><!--所有的元素,不能直接在根節(jié)點(diǎn)下--><div><h1>個(gè)人信息</h1>{{id}}</div> </template><script>export default {props: ['id'],name: "UserProfile",beforeRouteEnter:(to,from,next)=>{console.log("進(jìn)入路由之前")next();},beforeRouteLeave:(to,from,next)=>{console.log("進(jìn)入路由之后")next();}} </script><style scoped></style>

    參數(shù)說明:

    • to:路由將要跳轉(zhuǎn)的路徑信息
    • from:路徑跳轉(zhuǎn)前的路徑信息
    • next:路由的控制參數(shù)
    • next() 跳入下一個(gè)頁面
    • next(’/path’) 改變路由的跳轉(zhuǎn)方向,使其跳到另一個(gè)路由
    • next(false) 返回原來的頁面
    • next((vm)=>{}) 僅在 beforeRouteEnter 中可用,vm 是組件實(shí)例

    2.在鉤子函數(shù)中使用異步通信

  • 安裝Axios:
  • cnpm install axios -s
  • main.js引用 Axios
  • import axios from 'axios' import VueAxios from 'vue-axios' Vue.use(VueAxios, axios)
  • 準(zhǔn)備數(shù)據(jù) : 只有我們的 static 目錄下的文件是可以被訪問到的,所以我們就把靜態(tài)文件放入該目錄下。數(shù)據(jù)和之前用的json數(shù)據(jù)一樣:data.json
  • 在 beforeRouteEnter 鉤子函數(shù)中進(jìn)行異步請求,Profile.vue代碼如下:
  • <template><!--所有的元素,不能直接在根節(jié)點(diǎn)下--><div><h1>個(gè)人信息</h1>{{id}}</div> </template><script>export default {props: ['id'],name: "UserProfile",beforeRouteEnter:(to,from,next)=>{console.log("進(jìn)入路由之前")next(vm => {vm.getData(); //進(jìn)入路由之前執(zhí)行g(shù)etData()});},beforeRouteLeave:(to,from,next)=>{console.log("進(jìn)入路由之后")next();},methods: {getData: function () {this.axios({method: 'get',url: 'http://localhost:8080/static/mock/data.json'}).then(function (response) {console.log(response)})}}} </script><style scoped></style>

    效果如下:

    總結(jié)

    以上是生活随笔為你收集整理的Vue框架详解(适合Java学习者)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    www.99在线观看 | 久久精品视频在线看 | 夜夜骑天天操 | 黄色三级免费网址 | 中文视频在线看 | 久久九九影视 | 欧美日韩国产二区三区 | 精品久久久久久久久久久久久久久久久久 | 在线观看视频你懂得 | 久久精品一二三 | 视频三区 | 九九热精品视频在线播放 | 国产午夜视频在线观看 | 91av电影网| 成年人网站免费在线观看 | 色综合夜色一区 | 欧美ⅹxxxxxx | 91精品国产一区二区在线观看 | 日韩精品亚洲专区在线观看 | 日韩毛片在线播放 | 久草网视频在线观看 | 免费毛片aaaaaa| 福利视频精品 | 美女网站在线 | 激情视频在线观看网址 | 免费久久精品视频 | 国产亚洲资源 | 国产黄色免费看 | 人人干人人模 | 久久久在线免费观看 | 午夜久久网 | 中文字幕在线观 | 日韩影视大全 | 在线观看亚洲国产精品 | 免费精品视频在线观看 | 高清av中文在线字幕观看1 | 中文字幕一区二区三区久久 | 蜜桃视频在线观看一区 | 一区二区三区在线看 | 人人爽人人爽人人片av免 | 久草久| 爱情影院aqdy鲁丝片二区 | 国产裸体无遮挡 | 国产亚洲精品成人av久久影院 | 日韩高清在线看 | 免费av的网站| 97电影手机版 | 精品国产_亚洲人成在线 | 国内精品视频久久 | 亚洲午夜久久久久久久久 | 激情综合狠狠 | 国产精品网红福利 | 精品国产诱惑 | 欧美国产高清 | 456成人精品影院 | www天天干 | 九九免费在线观看 | 日本资源中文字幕在线 | 国产一区在线精品 | 国产高清精 | 国产精品国产三级国产aⅴ9色 | 一区二区视频电影在线观看 | 在线中文字幕一区二区 | 精品在线观看国产 | 欧美高清视频不卡网 | 亚洲人片在线观看 | 美女久久久久久久久久 | 久久免费视频在线观看 | 亚洲综合激情小说 | 久操视频在线 | 久久久国产精品亚洲一区 | 日韩亚洲国产中文字幕 | 色婷婷导航 | 欧美一区二视频在线免费观看 | 国产精品毛片一区二区在线看 | 97日日碰人人模人人澡分享吧 | 在线观看精品一区 | 欧美精品久久久久性色 | 色一色在线| 欧美另类高潮 | 免费看的黄网站软件 | 国产精品久久久久一区二区国产 | 久久久精品国产免费观看同学 | 色偷偷88欧美精品久久久 | 免费黄在线看 | 久久人人爽人人爽人人片av免费 | 免费在线观看黄色网 | 久久蜜臀一区二区三区av | av中文字幕电影 | 在线免费观看亚洲视频 | 中文字幕资源网 国产 | 国产手机精品视频 | 婷婷国产精品 | 久久精品导航 | 久久久久久久99 | 久久精品男人的天堂 | 精品视频不卡 | 亚洲播放一区 | 日本精品久久久久影院 | 日韩va欧美va亚洲va久久 | 国产精品日韩久久久久 | 国产96在线观看 | 亚洲精品视频在线免费播放 | 一区二区三区在线不卡 | 久久国产精品视频 | 日韩在线观看视频在线 | 麻豆国产网站 | av观看久久久 | 日韩免费网址 | 久久超级碰 | 精品亚洲午夜久久久久91 | 五月天激情婷婷 | av成人在线电影 | 日韩一区二区免费在线观看 | 黄色成人av在线 | 久久精品一区二区三 | 婷婷射五月 | 69热国产视频 | 免费观看成人网 | 国内精品久久久久久久 | 狠狠色伊人亚洲综合网站色 | 成人一级免费电影 | 久久久国产精品免费 | 国产一区二区影院 | 香蕉视频在线网站 | 精品一二三区视频 | 在线观看精品一区 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久综合激情 | 日韩久久视频 | 天天干夜夜爽 | 激情五月在线 | 免费精品| 成人一区二区在线观看 | 99色视频在线 | 成年人免费在线观看网站 | 久久精品一区二区三区四区 | 果冻av在线 | 五月黄色 | 婷婷亚洲五月色综合 | 久久黄色精品视频 | 欧美在线观看禁18 | 国产成人精品综合久久久 | 国产日产精品久久久久快鸭 | 欧美日韩国产综合一区二区 | 一区二区三区手机在线观看 | 婷婷色在线 | 国产成人免费av电影 | 91传媒在线播放 | 亚洲国产日韩一区 | 伊人激情网 | 成年人免费av网站 | 国产视频在线观看一区二区 | 久久这里只有精品23 | 精品欧美乱码久久久久久 | 国产女人40精品一区毛片视频 | 一本一本久久a久久精品牛牛影视 | 81精品国产乱码久久久久久 | 免费在线观看av网站 | 超碰个人在线 | 国产日本三级 | 欧美日韩国产区 | 99视频这里有精品 | 又黄又刺激的视频 | 97成人在线视频 | 中文字幕在线观看三区 | 色偷偷网站视频 | 中国黄色一级大片 | 免费高清在线视频一区· | 国产成人精品日本亚洲999 | 五月婷婷av在线 | 91福利视频一区 | 日韩区视频 | 国产精品va在线观看入 | 免费a级观看 | 一区二区成人国产精品 | 日韩有码中文字幕在线 | 久精品视频在线观看 | 一本一道波多野毛片中文在线 | 51久久成人国产精品麻豆 | sesese图片| 婷婷干五月 | 久综合网| 国产无遮挡又黄又爽在线观看 | 国产精彩在线视频 | 色插综合| 永久免费的啪啪网站免费观看浪潮 | 国产亚洲日 | 日韩综合第一页 | 人人爽久久涩噜噜噜网站 | 欧美特一级 | 一级欧美日韩 | 最近中文字幕国语免费av | 婷婷六月激情 | 日韩中文字幕视频在线 | 国产在线精品一区二区不卡了 | 四虎欧美| 天天天综合网 | 中文网丁香综合网 | a视频在线观看 | 色吧久久 | 久久久三级视频 | 久久99国产精品久久99 | 婷婷精品国产一区二区三区日韩 | 久久小视频 | 亚洲成人av一区 | 久久夜色精品国产欧美乱 | 色综合天天综合网国产成人网 | av在线精品 | 成人国产精品 | 热久久国产 | 欧美在线视频精品 | 久久爱资源网 | 国产精品久久精品国产 | 亚洲高清在线 | 国产明星视频三级a三级点| av看片在线 | 涩涩爱夜夜爱 | 日韩欧美一区二区在线播放 | av免费看在线 | 久草精品视频 | 高清久久久久久 | 国产一级二级在线 | 97超碰成人| 精品一区免费 | 精品不卡视频 | 久久99九九99精品 | 五月婷婷,六月丁香 | 国产精品 国产精品 | 天天操天天爽天天干 | 亚洲第一久久久 | 国产探花在线看 | 91精品国产自产老师啪 | 久久噜噜少妇网站 | 久99久中文字幕在线 | 51久久夜色精品国产麻豆 | 亚洲男人天堂2018 | 狠狠色丁香久久婷婷综合丁香 | 激情视频免费观看 | 丁香国产视频 | 亚洲免费精彩视频 | 青青久草在线视频 | 国色天香永久免费 | 亚洲精品午夜久久久久久久久久久 | 日韩成人精品一区二区三区 | 一区二区欧美激情 | 欧洲精品一区二区 | 久久综合狠狠综合久久狠狠色综合 | 九九99 | 5月丁香婷婷综合 | 亚洲精品久久久蜜桃直播 | 亚州精品天堂中文字幕 | 国产区免费在线 | 国产在线精品一区二区三区 | 国产91在线观看 | 草久久久久 | 在线 高清 中文字幕 | 91av在线播放视频 | 国产精品高潮久久av | 国产a精品 | 日韩精品视频免费 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 精品国产一区二区三区久久久蜜月 | 亚洲午夜精品一区二区三区电影院 | 精品专区一区二区 | 粉嫩一二三区 | 国产 欧美 日本 | 国产精品嫩草55av | 日韩欧美在线高清 | 五月天婷婷在线观看视频 | 久久国产精品久久久久 | 久久综合中文色婷婷 | 在线成人一区二区 | 二区视频在线观看 | 亚洲人成综合 | 精品国产亚洲日本 | 免费国产在线观看 | 肉色欧美久久久久久久免费看 | 97福利在线 | 欧美午夜理伦三级在线观看 | www一起操| 激情五月av | 狠狠狠的干 | 久久亚洲综合国产精品99麻豆的功能介绍 | 就要干b | 色综合中文字幕 | 欧美极品xxx | 成人小视频在线观看免费 | 久久综合狠狠综合久久狠狠色综合 | 久久福利综合 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 国产一级在线观看视频 | 亚洲乱码国产乱码精品天美传媒 | 亚洲激情校园春色 | 玖玖视频国产 | 日韩试看 | 国产一级片免费播放 | 亚洲无吗av| 91精品国产欧美一区二区 | 国产又粗又长的视频 | 成人免费视频网站在线观看 | 国产在线97 | 日本狠狠干 | 三级黄色a | 九九久久精品视频 | 字幕网在线观看 | 国产精品久久久久999 | 91色国产在线| 中文字幕视频网站 | 在线视频 一区二区 | 中文字幕日本在线观看 | 91成品人影院 | 日韩视频a | 九九三级毛片 | 成年免费在线视频 | 韩日av在线| 国语精品视频 | 国产免费观看高清完整版 | 日韩欧美69 | 中文字幕色婷婷在线视频 | 欧美国产日韩在线观看 | 久久视频这里有久久精品视频11 | 国产综合片 | 香蕉视频免费看 | av手机版 | 国产日韩欧美在线 | 97精品久久 | 日韩精品黄 | 黄色网在线播放 | www.五月婷婷 | 一区二区三区四区五区在线 | av黄免费看 | 国产黄在线免费观看 | 综合影视| 国产黄色看片 | 超碰成人av | 国产精品欧美激情在线观看 | 国模一二三区 | 国产一级片播放 | 97在线观看 | 国产视频精品网 | 亚洲精品国偷拍自产在线观看蜜桃 | 伊人va| 日韩在线观看 | 国产亚洲精品v | 国产精品久久久久久久久久久久冷 | 日日干av| 97精品国产91久久久久久久 | 欧洲一区二区三区精品 | 久草热久草视频 | 亚洲在线免费视频 | 狠狠成人 | 精品国产理论片 | 免费的黄色的网站 | 日本黄色片一区二区 | 日本韩国精品一区二区在线观看 | 久久精品二区 | 爱干视频| 国产精品美女视频网站 | www.一区二区三区 | 婷婷成人综合 | 久久久国产一区二区三区四区小说 | 久久人91精品久久久久久不卡 | av电影在线免费 | 久久久免费精品国产一区二区 | 韩日三级在线 | 日韩av电影中文字幕 | 国产无套一区二区三区久久 | 免费av的网站 | 亚洲一二三区精品 | 精品二区视频 | 超碰在线最新网址 | 久草在线最新视频 | 精品毛片一区二区免费看 | 亚洲三区在线 | 久久特级毛片 | 91视频最新网址 | 国产成年人av | 九九99靖品 | 开心丁香婷婷深爱五月 | 久久久久久高潮国产精品视 | 色综合久久88 | 欧美另类美少妇69xxxx | 亚洲一级电影在线观看 | 国产黑丝袜在线 | 精品福利av | 最新国产中文字幕 | 亚洲黄色软件 | 91网站在线视频 | 三级动态视频在线观看 | 亚欧日韩成人h片 | 亚洲最大成人免费网站 | 一级片观看 | 日韩素人在线观看 | 在线视频你懂 | 亚洲天堂在线观看完整版 | 亚洲精品日韩av | 欧美综合久久久 | 欧美色图30p| 西西44人体做爰大胆视频 | 超级碰视频 | www91在线 | 欧美极品xxxx | 最新久久免费视频 | 在线观看亚洲专区 | 国产精品18久久久久久久网站 | 成人午夜电影在线播放 | 中文字幕一区二区三区在线观看 | 久久久久国产精品一区二区 | 国产成视频在线观看 | 伊人色综合网 | 国产精品免费久久久久影院仙踪林 | 天堂激情网 | 久久艹国产视频 | 国产福利av在线 | 亚洲精品视频在线 | 在线观看aa | 中文字幕亚洲综合久久五月天色无吗'' | 91av电影| 96精品在线| 免费黄色av电影 | a精品视频 | 欧美夫妻生活视频 | 久久不卡免费视频 | 手机成人免费视频 | 美女免费视频观看网站 | 免费看片日韩 | 美女视频永久黄网站免费观看国产 | 久久免费国产视频 | 免费91麻豆精品国产自产在线观看 | 日韩欧美网址 | 国产久视频 | 婷婷久久精品 | 欧美日韩成人一区 | 在线91色 | 欧美一区二区精品在线 | 婷婷深爱网 | 国产一区在线观看视频 | 另类老妇性bbwbbw高清 | 91精品伦理 | 在线观看亚洲专区 | 国产午夜精品免费一区二区三区视频 | 中文字幕黄色av | 免费网站观看www在线观看 | 91视频一8mav | 伊人影院99 | 久久综合影视 | 国产一区二区三区高清播放 | 91九色网址 | 日本久久91 | 国产精品久久久一区二区三区网站 | 天天爱天天插 | 少妇视频一区 | 亚洲理论片在线观看 | 一区二区三区四区在线 | 久久久久久电影 | 久草在线这里只有精品 | 精品国产乱码久久久久 | 精品久久一区二区三区 | 日本二区三区在线 | 日韩久久视频 | 97免费在线观看视频 | 久久免费黄色大片 | 国产一级免费av | 国产美女精品视频免费观看 | 色噜噜噜噜 | 久久精品7 | 亚洲精品白浆高清久久久久久 | 久久人人做 | 国产黄视频在线观看 | 色婷婷www | 亚洲我射av| 欧美日韩性视频在线 | 亚洲精品在线二区 | 亚洲精品综合在线观看 | 天天操天天插 | 亚洲黄在线观看 | 中文字幕在线视频一区二区三区 | 99精品热视频只有精品10 | 国产综合小视频 | 在线观看视频国产一区 | 91在线视频免费观看 | 手机av在线网站 | 外国av网| 又粗又长又大又爽又黄少妇毛片 | 色成人亚洲 | 欧美一级在线看 | 久久久午夜精品福利内容 | 日韩免费高清 | 亚洲免费精彩视频 | 国产不卡视频在线播放 | 久久人人爽人人爽人人片 | 丁香午夜婷婷 | 夜夜操网 | 91色网址 | 手机成人av | 国内精品久久久久久久久 | 91成品视频 | 久久婷婷丁香 | 黄色成人在线 | 欧美一级日韩三级 | 免费一级片在线 | 五月色婷 | 97超级碰 | 国产免费一区二区三区网站免费 | 国产九九在线 | 免费看国产a | 亚洲自拍自偷 | 久色免费视频 | 特级西西www44高清大胆图片 | www.久久久久 | 国产精品欧美一区二区 | 久青草影院 | 免费视频久久久久久久 | 日韩在线观看视频一区二区三区 | 综合色影院| 精品成人a区在线观看 | 日韩成人在线一区二区 | 欧美一级久久久久 | 97在线观看免费 | 国产精品麻豆91 | 97视频在线免费观看 | 亚洲视频电影在线 | 久热电影 | 亚洲精品久久久久中文字幕二区 | 日韩免费视频在线观看 | 九九精品视频在线观看 | 久久9精品| 久久手机免费视频 | 成人精品99 | 亚洲精品久久视频 | 日本精品xxxx| 亚洲国产免费看 | 婷婷六月在线 | 国内精品毛片 | 免费在线观看成人 | 久久免费的精品国产v∧ | 久久久资源 | 日韩在线免费播放 | 久久成人在线视频 | 色综合小说 | 国产精品一区久久久久 | 偷拍福利视频一区二区三区 | 激情综合狠狠 | 久久久精品高清 | 国产成人av在线 | 激情综合交 | 五月天婷亚洲天综合网精品偷 | 国产日韩欧美在线播放 | 99 久久久久 | 欧美久久成人 | 成人黄色在线 | 国产精品久久久久av免费 | 日韩网站在线免费观看 | 日韩欧美视频免费观看 | 视频一区二区视频 | 91视频下载 | www.黄色在线 | 亚洲高清在线观看视频 | 1区2区视频 | 欧美性色综合 | 好看av在线 | 97成人免费 | 国产中文字幕在线播放 | 97日日碰人人模人人澡分享吧 | 国产精品精品久久久久久 | 中国一级特黄毛片大片久久 | 99精品久久久久 | 中文字幕在线精品 | 日韩有码第一页 | 国产精品原创视频 | 国产一级不卡毛片 | 亚洲精品456在线播放 | 黄色小说视频网站 | 国产高清视频免费最新在线 | 国产人在线成免费视频 | 亚洲欧美日韩国产精品一区午夜 | 亚洲黄污| 麻豆视频在线免费观看 | 免费在线观看成人av | 91网址在线| 国产亚洲在线 | 日韩av一区二区三区四区 | 一区二三国产 | 一级做a视频 | 一区 在线 影院 | 国产黄免费 | 91av蜜桃| 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 五月香视频在线观看 | 麻豆传媒视频在线 | 黄色国产大片 | 国产福利专区 | 999一区二区三区 | 六月久久婷婷 | www夜夜操com| 亚洲理论视频 | 国产高清视频网 | 午夜精品久久久久久中宇69 | 国产精品永久在线观看 | 久久精品欧美一区 | 久久99久久99精品免观看软件 | 三级av网站| 日韩影视精品 | 久久久精品久久日韩一区综合 | 亚洲精品国产品国语在线 | 精品国产乱码久久久久久1区二区 | 伊人视频 | 久久久99精品免费观看 | 中文字幕免费在线看 | 五月天六月婷婷 | 欧美精品亚洲精品日韩精品 | 又长又大又黑又粗欧美 | 久草热视频 | 毛片1000部免费看 | 国产精品久久久久久久久费观看 | 色老板在线 | 最新动作电影 | 国产精华国产精品 | 国产成人a v电影 | 国产精品久久久久毛片大屁完整版 | 中文在线字幕免费观 | 一区二区理论片 | 在线观看亚洲电影 | 国产精品午夜在线观看 | 在线a人片免费观看视频 | 国产精品免费小视频 | 国产一区二区久久久 | 少妇性色午夜淫片aaaze | 亚洲视频1 | 色婷婷狠狠操 | 黄色视屏在线免费观看 | 久久高清片 | 亚洲v精品 | 欧美成人理伦片 | 亚洲精品久久久久www | 久久九九精品 | 三级黄色网络 | 日日操网站 | 久久一区二区三区超碰国产精品 | 亚洲精区二区三区四区麻豆 | 成人九九视频 | 久久免费久久 | 精品国产乱码 | 美女久久久久久久久久久 | 亚洲综合精品在线 | 99超碰在线观看 | 成人在线播放视频 | 日本久久久久久久久 | 免费一级特黄毛大片 | 超碰免费成人 | 波多野结衣在线观看一区二区三区 | 99精品黄色片免费大全 | 亚洲一区二区麻豆 | 久久公开视频 | 特级黄色片免费看 | 国产精品2019 | 国产中文字幕三区 | 99精品视频99 | 在线观看黄色免费视频 | 在线视频福利 | 成人中文字幕+乱码+中文字幕 | av免费在线网 | 欧美成人亚洲 | 免费日韩三级 | 九九免费精品视频在线观看 | 久久久久久不卡 | 狠狠干我 | 人人舔人人射 | 狠狠躁日日躁夜夜躁av | 天天射天天舔天天干 | 久久激情视频 久久 | 久久人人爽| 香蕉网在线播放 | 久久99精品一区二区三区三区 | 欧美日韩在线网站 | 丁香视频全集免费观看 | 中文av在线免费观看 | 国产99久久精品一区二区300 | 九九九九九九精品 | 免费h在线观看 | 日韩av在线一区二区 | 久久免费精品国产 | 九九有精品 | 久久久免费电影 | 超薄丝袜一二三区 | 91视频亚洲 | 欧美孕交vivoestv另类 | 国产精品自产拍在线观看 | 国产在线精品一区二区不卡了 | 97超视频在线观看 | 狠狠躁天天躁 | 色播六月天 | 免费看黄在线看 | 久久久久北条麻妃免费看 | 一区二区三区在线观看免费 | 午夜婷婷在线观看 | 亚洲成人家庭影院 | 久草色在线观看 | 亚洲天堂毛片 | 久久国产精品99久久久久 | av在线免费播放网站 | 日韩一区二区三免费高清在线观看 | 国产精品99页 | 国产一级一片免费播放放 | 国产麻豆精品免费视频 | 综合久色| 日韩欧美精品在线视频 | 国产小视频在线看 | 在线观看激情av | 天天av资源| 日韩欧美一区二区三区黑寡妇 | 久久99亚洲精品久久久久 | 国产在线不卡 | 91福利视频免费 | 中文在线免费视频 | 久久久久久久国产精品 | 久久免费a | 亚洲国产欧美一区二区三区丁香婷 | 天天在线免费视频 | 国产不卡精品 | 亚洲人人精品 | 亚洲国产三级在线 | 欧美在线观看视频免费 | 狠狠色丁香婷综合久久 | www.天天干| 国产偷v国产偷∨精品视频 在线草 | 国产中文字幕视频在线观看 | 福利视频一区二区 | 一级性视频 | 久久歪歪 | 免费看的黄色 | 在线黄色观看 | 国产资源在线免费观看 | 天天操天 | 欧美国产三区 | av一区在线播放 | 成人黄色在线视频 | 国产精品 中文在线 | 麻豆国产精品永久免费视频 | 综合天天色| 丁香在线视频 | 精品国产乱码久久久久久浪潮 | 欧美久久久一区二区三区 | 美女视频黄免费的久久 | 干亚洲少妇 | 在线免费观看视频a | 日本精品久久久久影院 | 中文字幕一区二 | 久草在线网址 | 欧美在一区 | 91香蕉嫩草| 国产午夜精品一区二区三区 | 久久免费国产精品1 | 男女男视频 | 视频一区在线播放 | 欧美亚洲另类在线视频 | 国产高清视频色在线www | 久久精彩视频 | 久久综合九色综合97婷婷女人 | 国产精品嫩草69影院 | 久久精品五月 | 中文字幕在线观看第三页 | 91亚洲精品在线观看 | 欧美日韩亚洲在线观看 | 特黄特色特刺激视频免费播放 | 久久久高清视频 | 国内精品久久影院 | av片在线观看免费 | 国产又粗又长的视频 | 日韩日韩日韩日韩 | 国产黄色在线 | 狠狠狠色丁香婷婷综合激情 | 国产精品久久久久久久久久久久冷 | 亚洲人成在线电影 | 国产精品乱码一区二区视频 | av电影av在线 | 天天插一插| 国产精品18久久久久久久网站 | 日日夜夜免费精品 | 久久人人爽人人人人片 | 中文字幕第一页在线视频 | 综合久久一本 | 永久免费毛片在线观看 | 欧美在线91 | 人人爽人人射 | www.看片网站 | 在线免费观看视频一区二区三区 | 国产精品欧美一区二区三区不卡 | 日韩理论在线视频 | 亚洲欧美观看 | 91探花国产综合在线精品 | 成人动漫精品一区二区 | 国产在线视频在线观看 | 日韩激情精品 | 成人丝袜 | 91av在线不卡 | 日本中文字幕久久 | 亚洲欧美精品在线 | 欧美乱熟臀69xxxxxx | 综合成人在线 | 日本中文字幕在线视频 | 欧美视频xxx| 国产精品自产拍在线观看桃花 | 91正在播放| 黄av免费 | 国产成年免费视频 | 91丝袜美腿| 国产精品久久久久aaaa九色 | 国产高清免费在线播放 | 久久这里只有精品9 | 久久精品这里热有精品 | 日韩videos | 欧美久久久久久久久久久久 | 特级毛片网站 | 中文字幕在线观看免费观看 | 久 久久影院 | 99产精品成人啪免费网站 | 在线观看午夜 | 成人一区二区三区在线观看 | 国产一级大片在线观看 | 亚洲艳情 | 国产一区视频在线观看免费 | 亚洲精品午夜久久久久久久久久久 | 91精品国产综合久久福利 | 国产高清亚洲 | 久久国产高清视频 | 国产精品96久久久久久吹潮 | 国内精品在线一区 | 一区二区中文字幕在线播放 | 中文字幕一二三区 | 国产精品久久久久久久久久久久冷 | 四虎影院在线观看av | 国产小视频在线 | 成人在线观看免费视频 | 久草免费在线视频观看 | 欧美综合国产 | 天天爽天天爽 | 天天干天天操天天 | av免费电影在线 | 久久综合狠狠综合久久激情 | 精品人人爽 | 日韩在线免费小视频 | 奇米导航 | 黄色影院在线免费观看 | 亚洲精品视频在线观看免费视频 | 久久人91精品久久久久久不卡 | 狠狠操电影网 | 久久99精品久久只有精品 | 久久99国产精品久久99 | 久久夜夜操 | 国产精品 999 | 在线看片日韩 | 午夜电影av | 久久这里只有精品首页 | 久久99亚洲网美利坚合众国 | 四虎影视欧美 | 欧美一级在线 | 国产特级毛片aaaaaa高清 | 草在线视频| 欧美精品国产综合久久 | 人人插超碰 | 日韩欧美成人网 | 久久久免费 | 国产成人一区二区精品非洲 | 午夜三级理论 | 天天操网址 | 三级av中文字幕 | 夜夜夜夜爽 | 日韩精品短视频 | 91成年人视频 | 亚洲成人资源在线观看 | 91av小视频| 亚洲精品在线一区二区 | 激情五月婷婷激情 | 亚洲精品国偷拍自产在线观看 | 亚洲va韩国va欧美va精四季 | 国产精品毛片一区二区三区 | 亚洲成人免费观看 | 欧美日本不卡高清 | 国产精品视频线看 | 黄色美女免费网站 | 在线观看免费黄色 | 草久久精品 | 色噜噜在线观看 | 在线观看片 | 伊人久久国产 | 六月激情久久 | 久久婷婷综合激情 | 成人av午夜 | 国产欧美在线一区二区三区 | 缴情综合网五月天 | 99综合电影在线视频 | 久久免费视频7 | 欧美日产一区 | 国产精品久久一卡二卡 | 97福利在线 | 黄色官网在线观看 | 久久久亚洲精品 | 国产日韩欧美在线免费观看 | 国内精品久久久 | 国产精品福利一区 | 国产精品国产三级国产专区53 | 国产精品18久久久久久久网站 | 涩涩爱夜夜爱 | 久久福利小视频 | 国产精品观看在线亚洲人成网 | 国产精品成人av电影 | av综合在线观看 | 国产r级在线观看 | 麻花豆传媒mv在线观看网站 | 色婷婷亚洲婷婷 | 亚洲在线网址 | 丰满少妇在线 | 日韩一区二区三区不卡 | 国产精品成人av在线 | 国产美女免费观看 | 天天艹天天干天天 | 欧美在线视频一区二区 | 99久久电影 | 久久99精品波多结衣一区 | 国产精品s色 | 国产精品久久亚洲 | 亚洲成人一二三 | 婷婷综合导航 | 免费在线观看av网址 | 韩国av不卡 | 国产一区二区三区免费在线观看 | 国产中文字幕视频在线观看 | 久久精品4| 免费三级网 | 亚洲国产成人久久 | 中文字幕在线免费观看视频 | 亚洲精品av中文字幕在线在线 | 麻豆国产在线播放 | 国产91免费在线观看 | 免费 在线 中文 日本 | 国产精品久久久久久久久久久免费看 | 国产专区视频在线观看 | 婷婷网在线 | 日韩欧美不卡 | 亚洲毛片在线观看. | 日韩电影在线观看一区 | 久久99在线视频 | 91精品视屏 | 欧美大jb | 精品中文字幕在线播放 | 青青河边草免费视频 | 在线看国产日韩 | 久久国产精品99久久久久 | 在线观看第一页 | 又黄又爽又无遮挡免费的网站 | 亚洲国产精品电影 | www免费在线观看 | 西西44人体做爰大胆视频 | 国产亚洲精品无 | 在线天堂亚洲 | 精品麻豆入口免费 | 中文字幕免费不卡视频 | 成人黄色片免费看 | 日韩欧美一区二区三区在线观看 | 国产精品久久久久久久久久新婚 | 精品在线二区 | 国产亚洲精品久久久久久大师 | 天天做天天射 | 中文字幕一区二区三区精华液 | 一区二区视频电影在线观看 | 91九色免费视频 | 国产精品福利在线观看 | 久久精品视频在线播放 | 日韩视频图片 | 久久久久久久久久久久亚洲 | 成人毛片a| 不卡中文字幕av | 天堂av最新网址 | 日韩免费在线观看视频 | 国产资源免费在线观看 | 欧美一级免费片 | 深夜福利视频一区二区 | 国产成人av网站 | 麻豆va一区二区三区久久浪 | 亚洲国产精品影院 | 成人av电影网址 | 久久久久这里只有精品 | 国产精品久久久久久久久久免费 | 黄色网在线免费观看 | 精品一区二区久久久久久久网站 | 国产精品123 | 日本黄网站 | 亚洲aⅴ久久精品 | 日韩高清在线观看 | 中文字幕在线观看av | 久久国产精品99久久久久久丝袜 | 亚洲成人免费观看 | 国产91精品一区二区绿帽 | 久久久久久国产精品久久 | 五月香婷| 96久久 |