<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【面試】924- 35 道 Vue 面試題,真香

          共 10868字,需瀏覽 22分鐘

           ·

          2021-04-10 10:14

          1.h5底部輸入框被鍵盤遮擋問題

          如果你遇到h5頁(yè)面這個(gè)問題,當(dāng)輸入框在最底部,點(diǎn)擊軟鍵盤后輸入框會(huì)被遮擋,可以如下解決問題:

          var getHeight = $(document).height();

          $(window).resize(function(){
           if($(document).height() < getHeight) {
            $('#footer').css('position','static');
           }else {
            $('#footer').css('position','absolute');
           }
          });



          2.觸屏即播放

          $('html').one('touchstart',function(){
           audio.play()
          })

          3.阻止旋轉(zhuǎn)屏幕時(shí)自動(dòng)調(diào)整字體大小

          html, body, form, fieldset, p, div, h1, h2, h3, h4, h5, h6 {-webkit-text-size-adjust:none;}

          4.主流網(wǎng)站布局

          頁(yè)面分為3個(gè)部分:頁(yè)面的頂部header,底部footer,中間部分(側(cè)欄side和主要部分main)。

          下面代碼展示:

          <body>
           // 頁(yè)面層容器
           <div id="container">
            // 頁(yè)面頭部
            <div id="header"></div>
            // 頁(yè)面主體
            <div id="main">>
             // 側(cè)邊欄
             <div id="side">
             </div>
            </div>
            // 頁(yè)面底部
            <div id="footer"></div>
           </div>
          </body>

          設(shè)計(jì)頁(yè)面樣式代碼如下:

          <style type="text/css">
           body{
            font: 12px 微軟雅黑;
            margin: 0px;
            text-align: center;
            background: #fff;
           }
           
           // 頁(yè)面層容器
           #container {
            width: 100%;
           }
           #header {
            width: 800px;
            margin: 0 auto;
            height: 100px;
            background: #FFCC99;
           }
           #main {
            width: 800px;
            margin: 0 auto;
            height: 400px;
           }
           #side {
            float: left;
            width: 20em;
            background: red;
            padding: 15px 0;
           }
           #foot {
            width: 800px;
            margin: 0 auto;
            height: 50px;
            background: #00ffff;
           }
          </style>

          效果圖如下:



          5.什么是MVVM框架?

          MVVM框架是一個(gè)Model-View-ViewModel框架,其中ViewModel連接模型Model和視圖View。

          vue.js中的MVVM模式:

          vue.js是通過數(shù)據(jù)驅(qū)動(dòng)的,vue.js實(shí)例化對(duì)象將dom和數(shù)據(jù)進(jìn)行綁定,一旦綁定,dom和數(shù)據(jù)將保持同步,每當(dāng)數(shù)據(jù)發(fā)生變化,dom也會(huì)隨著變化;ViewModelVue.js的核心,它是Vue.js的一個(gè)實(shí)例。Vue.js會(huì)針對(duì)某個(gè)HTML元素進(jìn)行實(shí)例化,這個(gè)HTML元素可以是body,也可以是某個(gè)css選擇器所指代的元素。DOM ListenersData Bindings是實(shí)現(xiàn)雙向綁定的關(guān)鍵。DOM Listeners監(jiān)聽頁(yè)面所有View層中的DOM元素,當(dāng)發(fā)生變化時(shí),Model層的數(shù)據(jù)隨之變化。Data Bindings會(huì)監(jiān)聽Model層的數(shù)據(jù),當(dāng)數(shù)據(jù)發(fā)生變化時(shí),View層的DOM元素也隨之變化。

          6.active-class是哪個(gè)組件的屬性

          它是vue-router模塊的router-link組件的屬性

          7.如何定義vue-router的動(dòng)態(tài)路由

          在靜態(tài)路由名稱前面添加冒號(hào),如設(shè)置id動(dòng)態(tài)路由參數(shù),為路由對(duì)象的path屬性設(shè)置/:id

          8.如何獲取傳過來的動(dòng)態(tài)參數(shù)

          在組件中,使用$router對(duì)象的params.id,如$route.params.id

          9.vue-router有哪幾種導(dǎo)航的鉤子

          有三種,第一種是全局導(dǎo)航鉤子,router.beforeEach(to,from,next),作用是跳轉(zhuǎn)前進(jìn)行判斷攔截;第二種是組件內(nèi)的鉤子;第三種是單獨(dú)路由獨(dú)享組件。

          導(dǎo)航鉤子又叫導(dǎo)航守衛(wèi),又分為全局鉤子,單個(gè)路由獨(dú)享鉤子和組件級(jí)鉤子。

          全局鉤子有beforeEach,beforeResolve,afterEach,單個(gè)路由獨(dú)享鉤子有:beforeEnter

          組件級(jí)鉤子有:beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave:它們有以下參數(shù):

          to表示即將要進(jìn)入的目標(biāo)路由對(duì)象;from表示當(dāng)前導(dǎo)航正要離開的路由;next表示一定要用這個(gè)函數(shù)才能到達(dá)下一個(gè)路由,如果不用就會(huì)遭到攔截。

          10.mint-ui是什么

          mint-ui它是基于Vue.js的前端組件庫(kù),用npm安裝,然后通過import導(dǎo)入樣式和JavaScript代碼,vue.use(mintUi)用于實(shí)現(xiàn)全局引入,import {Toast} from 'mint-ui'用能于在單個(gè)組件局部引入

          11.v-model是什么

          v-modelvue.js的一條指令,實(shí)現(xiàn)數(shù)據(jù)的雙向綁定

          雙向數(shù)據(jù)綁定的原理:

          vue.js使用es5提供的屬性特性功能,結(jié)合發(fā)布者-訂閱者模式,通過Object.defineProperty()為各個(gè)屬性定義get,set特性方法,在數(shù)據(jù)發(fā)送改變時(shí)給訂閱者發(fā)布消息,觸發(fā)相應(yīng)的監(jiān)聽回調(diào)。

          過程:a,對(duì)需要觀察的數(shù)據(jù)對(duì)象進(jìn)行遞歸遍歷,包含子屬性對(duì)象的屬性,設(shè)置setget特性方法;當(dāng)給這個(gè)對(duì)象的某個(gè)值賦值時(shí),會(huì)觸發(fā)綁定的set特性方法,就能起到監(jiān)聽數(shù)據(jù)的變化。b,用compile解析模板指令,將模板中的變量替換成數(shù)據(jù),然后初始化渲染頁(yè)面視圖,并將每個(gè)指令對(duì)應(yīng)的節(jié)點(diǎn)綁定更新函數(shù),添加監(jiān)聽數(shù)據(jù)的訂閱者,一旦數(shù)據(jù)有變動(dòng),就會(huì)收到通知,并更新視圖。c,Watcher訂閱者是ObserverCompile之間通信的橋梁:在自身實(shí)例化時(shí)向?qū)傩杂嗛喥?code style="margin-right: 2px;margin-left: 2px;padding: 2px 4px;max-width: 100%;font-size: 14px;border-radius: 4px;color: rgb(30, 107, 184);background-color: rgba(27, 31, 35, 0.05);font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace;word-break: break-all;box-sizing: border-box !important;overflow-wrap: break-word !important;">dep里面添加自己;自身必須有一個(gè)update()方法;在dep.notice()發(fā)布通知時(shí),能調(diào)用自身的update()方法,并觸發(fā)Compile中綁定的回調(diào)函數(shù)。d,MVVM是數(shù)據(jù)綁定的入口,整合了ObserverCompileWathcher三者,通過Observer來監(jiān)聽自己的model數(shù)據(jù)變化,通過Compile來解析編譯模板指令,最終利用Watcher來搭起ObserverCompile之間的通信橋梁,達(dá)到數(shù)據(jù)變化通知視圖更新的效果,利用視圖交互,變化更新數(shù)據(jù)model變更的雙向綁定效果。

          12.vue.js中標(biāo)簽如何綁定事件

          第一種方式,使用v-on;第二種方式,使用@語法糖

          13.vuex是什么

          vuexvue.js框架實(shí)現(xiàn)的狀態(tài)管理系統(tǒng)。使用vuex,要引入store,并注入vue.js組件中,在組件內(nèi)部可以通過$store訪問store對(duì)象;使用場(chǎng)景,在單頁(yè)應(yīng)用中,用于組件之間的通信,如音樂播放,登錄狀態(tài)管理,加入購(gòu)物車等

          vuex可以說是一種開發(fā)模式或框架,它是對(duì)vue.js框架數(shù)據(jù)層面的擴(kuò)展,通過狀態(tài)集中管理驅(qū)動(dòng)組件的變化,應(yīng)用的狀態(tài)集中放在store中,改變狀態(tài)的方式是提交mutations,這是個(gè)同步的事務(wù),異步的邏輯應(yīng)該封裝在action中。

          14.在vue中說說你知道的自定義指令

          自定義指令兩種:一種全局自定義指令,vue.js對(duì)象提供了directive方法,可以用來自定義指令,directive方法接收兩個(gè)參數(shù),一個(gè)是指令名稱,另一個(gè)是函數(shù);第二種是局部自定義指令,通過組件的directives屬性定義。

          15.vue.js中常用的4種指令

          v-if判斷對(duì)象是否隱藏;v-for循環(huán)渲染;v-bind綁定一個(gè)屬性;v-model實(shí)現(xiàn)數(shù)據(jù)雙向綁定

          v-if循環(huán)中實(shí)現(xiàn)v-model數(shù)據(jù)的雙向綁定:

          有時(shí)需要?jiǎng)?chuàng)建input,并用v-model實(shí)現(xiàn)數(shù)據(jù)的雙向綁定。此時(shí)可以為v-model綁定數(shù)組的一個(gè)成語selected[$index],這樣可以給不同的input綁定不同的v-model:

          <div v-for="(item,index) in arrDa">
           <input type="text" v-model="arrData[index]">
           <h1>{{arrDa[index]}}</h1>
          </div>

          16.vue-router是什么

          vue-routervue.js的路由插件,(常用router-linkrouter-view

          17.vue.js的生命周期

          共分8個(gè)階段:

          1. beforeCreate

          在實(shí)例初始化之后,數(shù)據(jù)觀測(cè)者data observerevent/watcher事件配置之前調(diào)用

          1. created

          在實(shí)例創(chuàng)建完成后立即調(diào)用,此時(shí),實(shí)例已完成:觀測(cè)者,屬性和方法的運(yùn)算,watch/event事件回調(diào),掛載階段還沒開始,$el屬性目前不可見。

          1. beforeMount

          在掛載開始之前調(diào)用,相關(guān)的render函數(shù)首次調(diào)用。

          1. mounted

          el被新創(chuàng)建的vm.$el替換,并且在掛載到實(shí)例上之后再調(diào)用該鉤。如果root實(shí)例掛載了一個(gè)文檔內(nèi)元素,當(dāng)調(diào)用mounted時(shí)vm.$el也在文檔內(nèi)。

          1. beforeUpdate

          在數(shù)據(jù)更新時(shí)調(diào)用,發(fā)生在虛擬dom重新渲染和打補(bǔ)丁之前。

          1. updated

          由于數(shù)據(jù)更改導(dǎo)致的虛擬dom重新渲染和打補(bǔ)丁,在這之后會(huì)調(diào)用該鉤子。

          1. beforeDestroyed

          在實(shí)例銷毀之前調(diào)用,在這一步,實(shí)例仍然完全可用。

          1. destroyed

          vue.js實(shí)例銷毀后調(diào)用,vue.js實(shí)例指示的所有東西都會(huì)解除綁定,所有的事件監(jiān)聽會(huì)被移除,所有的子實(shí)例也會(huì)被銷毀。

          如果使用組件的keep-alive功能時(shí),增加兩個(gè)周期:

          • activatedkeep-alive組件激活時(shí)調(diào)用;
          • deactivatedkeep-alive組件停用時(shí)調(diào)用。

          <keep-alive>包裹動(dòng)態(tài)組件時(shí),會(huì)緩存不活動(dòng)的組件實(shí)例,而不是銷毀它們。<keep-alive>是一個(gè)抽象組件,它自身不會(huì)渲染一個(gè)DOM元素,也不會(huì)出現(xiàn)在父組件鏈中。

          當(dāng)在<keep-alive>內(nèi)切換組件時(shí),它的activateddeactivated這兩個(gè)生命周期鉤子函數(shù)將會(huì)執(zhí)行。

          <keep-alive>
           <component :is="view"></component>
          </keep-alive>

          增加一個(gè)周期鉤子:ErrorCaptured表示當(dāng)捕獲一個(gè)來自子孫組件的錯(cuò)誤時(shí)調(diào)用。

          18.描述封裝vue組件的作用過程

          組件可以提升整個(gè)項(xiàng)目的開發(fā)效率,能夠把頁(yè)面抽象成多個(gè)相對(duì)獨(dú)立的模塊,解決了傳統(tǒng)項(xiàng)目開發(fā)中效率低,難維護(hù),復(fù)用性等問題。

          使用Vue.extend方法創(chuàng)建一個(gè)組件,使用Vue.component方法注冊(cè)組件,子組件需要數(shù)據(jù),可以在props中接收數(shù)據(jù),而子組件修改好數(shù)據(jù)后,想要把數(shù)據(jù)傳遞給父組件,可以使用emit方法。

          使用自定義組件:

          components目錄中新建組件文件,腳本一定要導(dǎo)出暴露的接口;導(dǎo)入需要用到的頁(yè)面;將導(dǎo)入的組件注入vue.js的子組件的components屬性中;在template的視圖中使用自定義組件。

          創(chuàng)建組件

          <div id="app">
           <dada></dada>
          </div>
          <template id="demo">
           <div>
            <h1>{{msg}}</h1>
           </div>
          </template>
          <script type="text/javascript">
          // 定義組件類
          var dada = Vue.extend({
           template: '#demo',
           data:function() {
            return {
             msg: 'dadaqianduan.cn'
            }
           }
          })
          // 注冊(cè)組件
          Vue.component('dada',dada);
          // 定義Vue實(shí)例化對(duì)象
          var app = new Vue({
           el: '#app',
           data: {}
          })
          </script>

          19.vue-loader是什么

          vue-loader它是解析.vue文件的一個(gè)加載器,將template/js/style轉(zhuǎn)換成javascript模塊;通過這個(gè)vue-loader,javascript可以寫EMAScript6語法,style樣式可以應(yīng)用scsslesstemplate可以添加jade語法。。。

          20.在vue.cli項(xiàng)目中的src目錄說明

          1. assets文件夾存放靜態(tài)資源;
          2. components存放組件;
          3. router定義路由相關(guān)的配置;
          4. view是視圖;
          5. app.vue是一個(gè)應(yīng)用主組件;
          6. main.js是入口文件。

          21.對(duì)vue.jstemplate編譯的理解

          首先轉(zhuǎn)化成AST抽象語法樹,Abstract Syntax Tree,就是將源代碼語法結(jié)構(gòu)抽象成樹狀表現(xiàn)形式,然后通過render函數(shù)進(jìn)行渲染,并返回VNodeVue.js的虛擬dom節(jié)點(diǎn))。

          通過compile編譯器把template編譯成AST,compilecreateCompiler的返回值,createCompiler用來創(chuàng)建編譯器,compile還負(fù)責(zé)合并option;AST會(huì)經(jīng)過generate-將AST轉(zhuǎn)換成render function 字符串的過程-得到render函數(shù),render的返回值是VNodeVNodeVue.js的虛擬DOM節(jié)點(diǎn),里面有標(biāo)簽名,子節(jié)點(diǎn),文本等。

          22.v-show指令和v-if指令的區(qū)別

          它們都是條件渲染指令,不同的是,v-show的值無論是truefalse元素都會(huì)存在于html頁(yè)面中,而v-if的值為true時(shí),元素才會(huì)存在于html頁(yè)面中。

          v-show指令是通過修改元素的style屬性值實(shí)現(xiàn)的。

          23.讓css只在當(dāng)前組件中起作用

          只需要在style標(biāo)簽中添加scoped屬性,<style scoped></style>

          24.在vue.js中如何實(shí)現(xiàn)路由嵌套

          路由嵌套會(huì)將其他組件渲染到該組件內(nèi),而不是使整個(gè)頁(yè)面跳轉(zhuǎn)到router-view定義組件渲染的位置,要進(jìn)行頁(yè)面跳轉(zhuǎn),要將頁(yè)面渲染到根組件內(nèi)。首先實(shí)例化根組件,在根組件中定義組件渲染容器,然后,掛載路由,當(dāng)切換路由時(shí),將會(huì)切換整個(gè)頁(yè)面。

          new Vue({
           el: '#dada',
           router: router,
           template: '<router-view></router-view>'
          })

          25.在vue.js中的ref屬性有什么作用

          可以直接訪問組件內(nèi)部的一些元素,定義屬性可以在組件內(nèi)部通過this.$refs屬性,,訪問設(shè)置ref屬性的元素,這是一個(gè)原生的DOM元素,要使用原生DOM API操作它們。

          26.在vue.js開發(fā)環(huán)境下調(diào)用接口,如何避免跨域

          config/index.js內(nèi)對(duì)proxyTable項(xiàng)進(jìn)行如下配置:

          proxyTable: {
           '/api': {
             target: 'http://xxx.com',
             changeOrign: true,
             pathRewrite: {
              '^/api'''
             }
            }
          }

          27.axios是什么

          axiosvue2.0中用來替換vue-resource.js插件的一個(gè)模塊,是一個(gè)請(qǐng)求后臺(tái)資源的模塊

          使用npm install axios來安裝axios

          import Vue from 'vue'
          import axios from 'axios';
          Vue.prototype.$http = axios;
          new Vue({
           el: 'dada',
           data: {
            mag: ''
           },
           template: '<h1>{{msg}}</h1>',
           created: function() {
            this.$http.get('data.json').then(res=>{
             this.msg = res.data.data
            })
           }
          })

          當(dāng)調(diào)用axios.post('api/user')時(shí),表示發(fā)送post異步請(qǐng)求。

          28.sass是什么

          sass是一種css預(yù)編譯語言,用npm安裝加載程序;在webpack.config.js中配置sass加載程序

          module: {
           // 加載程序
           loaders: {
            // 加載scss
            {
             test: /\.scss$/,
             loader: 'vue-style-loader!css-loader!sass-loader'
            }
           }
          }

          29.什么情況下會(huì)產(chǎn)生片段實(shí)例

          模板包含多個(gè)頂級(jí)元素;模板只包含普通文本;模板只包含其他組件,模板只包含一個(gè)元素指令,如vue-router<router-view>;模板根節(jié)點(diǎn)有一個(gè)流程 控制指令,如v-ifv-for

          這些情況讓實(shí)例有未知數(shù)量的頂級(jí)元素,模板將把它的DOM內(nèi)容當(dāng)作片段。片段實(shí)例仍然會(huì)正確地渲染內(nèi)容。不過,模板沒有一個(gè)根節(jié)點(diǎn),它的$el指向一個(gè)錨節(jié)點(diǎn),即一個(gè)空的文本節(jié)點(diǎn)。

          vue2.0中,組件的模板只允許有權(quán)只有一個(gè)根節(jié)點(diǎn)。

          30.  實(shí)現(xiàn)多個(gè)根據(jù)不同條件顯示不同文字的方法

          <div id="app">
           <input type="text" v-model="inputValue">
           <h1>{{showValue}}</h1>
          </div>
          var app = new Vue({
           el: '#app',
           data: {
            inputValue: ''
           },
           computed: {
            showValue: function() {
             return this.inputValue || '請(qǐng)輸入內(nèi)容'
            }
           }
          })

          31.什么是數(shù)據(jù)的丟失

          如果在初始化時(shí)沒有定義數(shù)據(jù),之后更新的數(shù)據(jù)是無法觸發(fā)頁(yè)面渲染更新的,這部分?jǐn)?shù)據(jù)是丟失的數(shù)據(jù),這種現(xiàn)象叫數(shù)據(jù)的丟失。

          32.如何檢測(cè)數(shù)據(jù)的變化

          • 通過直接索引設(shè)置元素:app.arr[0]=
          • 修改數(shù)據(jù)的長(zhǎng)度:app.arr.length

          為了解決該問題,Vue.js擴(kuò)展了觀察數(shù)組,為它添加了一個(gè)$set()方法,用該方法修改的數(shù)組,能觸發(fā)視圖更新,檢測(cè)數(shù)據(jù)變化。

          app.$set(app.arr, 5, 500);

          由于javascript特性的限制,vue.js不能檢測(cè)到對(duì)象屬性的添加或刪除,因?yàn)?code style="margin-right: 2px;margin-left: 2px;padding: 2px 4px;max-width: 100%;font-size: 14px;border-radius: 4px;color: rgb(30, 107, 184);background-color: rgba(27, 31, 35, 0.05);font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace;word-break: break-all;box-sizing: border-box !important;overflow-wrap: break-word !important;">Vue.js在初始化時(shí)將數(shù)組轉(zhuǎn)化為getter/setter,所以屬性必須在data對(duì)象中定義,才能在初始化時(shí)讓vue.js轉(zhuǎn)換它并讓它響應(yīng)。

          var data = {
           obj: {
            a: 1
           }
          }
          var app = new Vue({
           el: '#app',
           data: data
          })
          app.ojb.a = 10
          app.obj.b = 20 // 不是響應(yīng)的
          data.obj.b = 20 // 不是響應(yīng)的

          如果需要在實(shí)例創(chuàng)建之后添加屬性并且讓它能夠響應(yīng),使用$set實(shí)例方法:

          app.$set(app.obj, 'b', 200)

          對(duì)于普通數(shù)據(jù)對(duì)象,可以全局方法Vue.set(object,key,value)

          Vue.set(data.obj, 'b', 250)

          33.vue.js文件中的樣式覆蓋不生效的問題

          style上加上scoped可以讓樣式私有化,只針對(duì)當(dāng)前vue.js文件中的代碼有效,不會(huì)對(duì)別的文件中的代碼造成影響,有時(shí),引入第三方UI,在vue.js文件中進(jìn)行樣式覆蓋不生效,大概是因?yàn)?code style="margin-right: 2px;margin-left: 2px;padding: 2px 4px;max-width: 100%;font-size: 14px;border-radius: 4px;color: rgb(30, 107, 184);background-color: rgba(27, 31, 35, 0.05);font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace;word-break: break-all;box-sizing: border-box !important;overflow-wrap: break-word !important;">style上的scoped導(dǎo)致的。

          可以將需要覆蓋樣式的這部分代碼放到單獨(dú)的css文件中,在main.js文件導(dǎo)入即可。

          34.如何解決數(shù)據(jù)層級(jí)結(jié)構(gòu)太深

          在開發(fā)中,常出現(xiàn)異步獲取數(shù)據(jù)的情況,有時(shí)數(shù)據(jù)層次太深,如:

          <text v-text="a.b.c.d"></text>

          可以使用vm.$set手動(dòng)定義一層數(shù)據(jù):vm.$set("dada", a.b.c.d)

          35.vue.js頁(yè)面的閃爍

          vue.js有一個(gè)v-cloak指令,該指令一直保持在元素上,直到關(guān)聯(lián)實(shí)例結(jié)束編譯。當(dāng)和css使用時(shí),這個(gè)指令可以隱藏未編譯的標(biāo)簽,直到實(shí)例編譯結(jié)束:<div>不會(huì)顯示,直到編譯結(jié)束。

          [v-cloak] {
           display: none;
          }
          <div v-cloak>{{dada}}</div>


          1. JavaScript 重溫系列(22篇全)
          2. ECMAScript 重溫系列(10篇全)
          3. JavaScript設(shè)計(jì)模式 重溫系列(9篇全)
          4. 正則 / 框架 / 算法等 重溫系列(16篇全)
          5. Webpack4 入門(上)|| Webpack4 入門(下)
          6. MobX 入門(上) ||  MobX 入門(下)
          7. 120+篇原創(chuàng)系列匯總

          回復(fù)“加群”與大佬們一起交流學(xué)習(xí)~

          點(diǎn)擊“閱讀原文”查看 120+ 篇原創(chuàng)文章

          瀏覽 83
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本五十路熟女视频 | 91豆花在线观看 | 欧美一级黃色a片免费看视频 | 18禁成人黄色 | 欧美v亚洲v综合v国产v妖精 |