VUE常見面試題50道

1、對(duì)vue的理解将鸵,有什么特點(diǎn)勉盅,vue為什么不能兼容IE8及以下瀏覽器

  vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架,核心是一個(gè)響應(yīng)的數(shù)據(jù)綁定系統(tǒng)

  vue是一款MVVM框架顶掉,基于雙向綁定數(shù)據(jù)草娜,當(dāng)數(shù)據(jù)發(fā)生變化時(shí)候,vue自身會(huì)進(jìn)行一些運(yùn)算

  特點(diǎn):簡潔輕量一喘、數(shù)據(jù)驅(qū)動(dòng)驱还、組件化、模塊友好

  vue.js使用了IE8無法模擬的 ECMAScript 5 特性凸克,沒有替代方案


2议蟆、簡述Vue雙向數(shù)據(jù)綁定的原理

  主要是通過Object對(duì)象的defineProperty屬性,重寫data的set和get函數(shù)來實(shí)現(xiàn)的

  vue是通過數(shù)據(jù)劫持的方式來做數(shù)據(jù)綁定萎战,最核心的方法就是通過Object.defineProperty()來實(shí)現(xiàn)對(duì)屬性的劫持

  在設(shè)置或者獲取的時(shí)候我們就可以在get或者set方法里加入其他的觸發(fā)函數(shù)咐容,達(dá)到監(jiān)聽數(shù)據(jù)變動(dòng)的目的


3、什么是MVVM蚂维,和MVC的區(qū)別

  MVVM是Model-View-ViewModel的縮寫

  Model層代表數(shù)據(jù)模型

  View代表組件視圖戳粒,負(fù)責(zé)將數(shù)據(jù)模型轉(zhuǎn)化成UI展現(xiàn)出來

  ViewModel是一個(gè)同步 View 和 Model 的對(duì)象(雙向綁定)

  在MVVM中路狮,View和Model之間并沒有直接的聯(lián)系,而是通過ViewModel進(jìn)行交互蔚约,

  Model和ViewModel之間的交互是雙向的奄妨,因此 通過視圖操作數(shù)據(jù),也能通過數(shù)據(jù)操作視圖

  MVC是Model-View- Controller的簡寫苹祟。即模型-視圖-控制器砸抛,使用MVC的目的是為了將M和V相分離

  MVVM與MVC最大的區(qū)別就是實(shí)現(xiàn)了View和Model的自動(dòng)同步,也就是當(dāng)Model的屬性改變時(shí)

  我們不用再手動(dòng)操作Dom來改變View树枫,而是改變后該屬性對(duì)應(yīng)View層會(huì)自動(dòng)改變


4直焙、vue.js的兩個(gè)核心是什么

  數(shù)據(jù)驅(qū)動(dòng)和組件化思想


5、vue與angular的區(qū)別

  vue的雙向邦定是基于ES5中g(shù)etter/setter來實(shí)現(xiàn)的砂轻,而angular是由自己實(shí)現(xiàn)一套模版編譯規(guī)則奔誓,需要進(jìn)行所謂的“臟值”檢查,vue則不需要

  vue需要提供一個(gè)el對(duì)象進(jìn)行實(shí)例化搔涝,后續(xù)的所有作用范圍也是在el對(duì)象之下厨喂,而angular而是整個(gè)html頁面


6、說下vue的底層原理

  Vue的模式是m-v-vm模式庄呈,即(model-view-modelView)杯聚,通過modelView作為中間層,進(jìn)行雙向數(shù)據(jù)的綁定與變化

  1)通過建立虛擬dom樹document.createDocumentFragment(),方法創(chuàng)建虛擬dom樹

  2)一旦被監(jiān)測的數(shù)據(jù)改變抒痒,會(huì)通過Object.defineProperty定義的數(shù)據(jù)攔截,截取到數(shù)據(jù)的變化

  3)截取到的數(shù)據(jù)變化颁褂,從而通過訂閱——發(fā)布者模式故响,觸發(fā)Watcher(觀察者),從而改變虛擬dom的中的具體數(shù)據(jù)

  4)最后通過更新虛擬dom的元素值,從而改變最后渲染dom樹的值颁独,完成雙向綁定


7彩届、簡述vue等單頁面應(yīng)用及優(yōu)缺點(diǎn)

  單頁面應(yīng)用,用戶所有的操作都在一個(gè)頁面完成

  優(yōu)點(diǎn):無刷新誓酒,用戶體驗(yàn)好樟蠕,共享資源只需要請(qǐng)求一次即可,采用組件化的思想靠柑,代碼結(jié)構(gòu)更加規(guī)范化寨辩,便于修改和調(diào)整

  缺點(diǎn):對(duì)搜索引擎不友好、低版本不支持歼冰,第一次加載首頁耗時(shí)相對(duì)較長靡狞,不能使用瀏覽器導(dǎo)航按鈕,需要自行實(shí)現(xiàn)前進(jìn)后退


8隔嫡、React與Vue對(duì)比

  相同點(diǎn):

  都支持服務(wù)器端渲染甸怕、數(shù)據(jù)驅(qū)動(dòng)視圖甘穿,狀態(tài)管理

  都有虛擬DOM、組件化開發(fā)梢杭、通過props參數(shù)進(jìn)行父子組件數(shù)據(jù)的傳遞

  不同點(diǎn):

  React嚴(yán)格上只針對(duì)MVC的C層,Vue則是MVVM模式

  虛擬DOM方面

  vue會(huì)跟蹤每一個(gè)組件的依賴關(guān)系,不需要重新渲染整個(gè)組件樹温兼,而React每當(dāng)應(yīng)用的狀態(tài)被改變時(shí),全部組件都會(huì)重新渲染

  視圖渲染方面

  React采用JSX渲染到DOM,vue使用的是template模板

  數(shù)據(jù)綁定方面

  vue實(shí)現(xiàn)了數(shù)據(jù)的雙向綁定武契,react數(shù)據(jù)流動(dòng)是單向的

  state對(duì)象方面

  react應(yīng)用中不可變的,需要使用setState方法更新狀態(tài)

  vue中,state對(duì)象不是必須的,數(shù)據(jù)由data屬性在vue對(duì)象中管理


9募判、前端組件化有什么優(yōu)勢

  1)提高開發(fā)效率

  2)方便重復(fù)使用

  3)便于協(xié)同開發(fā)

  4)更容易管理維護(hù)


10、說一下vue的生命周期吝羞,當(dāng)使用keep-alive屬性時(shí)兰伤,會(huì)增加哪兩個(gè)生命周期

  創(chuàng)建前/后beforeCreate/created:?

  在beforeCreated階段,vue實(shí)例的掛載元素el和數(shù)據(jù)對(duì)象data都為undefined钧排,還未初始化敦腔。在created階段,vue實(shí)例的數(shù)據(jù)對(duì)象data有了恨溜,el還沒有

  載入前/后beforeMount/mounted:

  在beforeMount階段符衔,vue實(shí)例的el和data都初始化了,但還是掛載之前為虛擬的dom節(jié)點(diǎn)糟袁,data尚未替換判族。在mounted階段,vue實(shí)例掛載完成项戴,data成功渲染形帮。

  更新前/后beforeUpdate/updated:

  當(dāng)data變化時(shí),會(huì)觸發(fā)beforeUpdate和updated方法周叮。不常用

  銷毀前/后beforeDestory/destoryed:

  beforeDestory是在vue實(shí)例銷毀前觸發(fā)辩撑,一般在這里要通過removeEventListener解除手動(dòng)綁定的事件

  執(zhí)行destroy方法后,vue實(shí)例已經(jīng)解除了事件監(jiān)聽以及dom的綁定仿耽,但是dom結(jié)構(gòu)依然存在


  在被keep-alive包含的組件/路由中合冀,會(huì)多出兩個(gè)生命周期的鉤子:

  activated 與 deactivated


11、說說你對(duì)angular臟檢查理解 

  angular中無法判斷數(shù)據(jù)是否做了更改项贺,所以設(shè)置了一些條件君躺,當(dāng)觸發(fā)這些條件之后就會(huì)執(zhí)行一個(gè)檢測來遍歷所有的數(shù)據(jù),對(duì)比剛才更改的地方執(zhí)行變化

  這個(gè)檢查很不科學(xué)而且效率不高开缎,有很多多余的地方


12棕叫、如何使css只在當(dāng)前組件起作用

  如果想寫的css只對(duì)當(dāng)前組件起作用,則在style中寫入scoped


13奕删、vue中v-if和v-show的區(qū)別

  v-if和v-show都是用來控制元素的渲染

  v-if是根據(jù)后面數(shù)據(jù)的真假谍珊,來判斷DOM的添加刪除等操作

  v-show只是在修改元素的css樣式(display屬性值)

  v-if如果初始渲染條件為真,就渲染,反之就不渲染

  v-show不管初始條件是否為真砌滞,都會(huì)被渲染

  v-if有更高的切換消耗侮邀,不適合做頻繁的切換

  ?v-show有更高的初始渲染消耗,適合做頻繁的切換


?14贝润、vue有哪些修飾符

  事件修飾符:stop绊茧、prevent、self打掘、once

  鍵盤修飾符:enter华畏、space、up尊蚁、down

  表單修飾符修飾符:number亡笑、trim、lazy


15横朋、列舉vue的幾種常用指令 

  v-if仑乌、v-show、v-for琴锭、v-on晰甚、v-bind、v-model决帖、v-once


16厕九、v-on可以綁定多個(gè)方法嗎?

  可以

<input v-on:keyup.enter="submit" v-on:focus="onFocus">

17地回、vue中$mount與el區(qū)別

$mount和el兩者在使用中沒有什么區(qū)別扁远,都是將實(shí)例化后的vue掛載到指定的DOM元素中

如果在實(shí)例化vue時(shí)指定el,則該vue將會(huì)渲染在el對(duì)應(yīng)的DOM中

沒有指定el刻像,則vue實(shí)例會(huì)處于一種“未掛載”的狀態(tài)穿香,此時(shí)通過$mount來手動(dòng)執(zhí)行掛載

18、vue事件修飾符怎么使用绎速,舉例說明

<!-- 阻止單擊事件繼續(xù)傳播 -->

? ? ? ? <a v-on:click.stop="doThis"></a>

? ? ? ? <!-- 提交事件不再重載頁面 -->

? ? ? ? <form v-on:submit.prevent="onSubmit"></form>

? ? ? ? <!-- 修飾符可以串聯(lián) -->

? ? ? ? <a v-on:click.stop.prevent="doThat"></a>

? ? ? ? <!-- 只有修飾符 -->

? ? ? ? <form v-on:submit.prevent></form>

? ? ? ? <!-- 點(diǎn)擊事件將只會(huì)觸發(fā)一次 -->

? ? ? ? <a v-on:click.once="doThis"></a>

? ? ? ? <!-- 只當(dāng)在 event.target 是當(dāng)前元素自身時(shí)觸發(fā)處理函數(shù) -->

? ? ? ? <div v-on:click.self="doThat">...</div>

19、vue中key值和is的作用

  使用key焙蚓,vue會(huì)基于key的變化重新排列元素順序纹冤,并且移除key不存在的元素」汗可以做優(yōu)化處理

  is可以擴(kuò)展原生html元素萌京,也可以綁定動(dòng)態(tài)組件


20、組件中data為什么是函數(shù)

  因?yàn)榻M件是用來復(fù)用的宏浩,JS 里對(duì)象是引用關(guān)系知残,這樣作用域沒有隔離

  而 new Vue 的實(shí)例,是不會(huì)被復(fù)用的比庄,因此不存在引用對(duì)象的問題


21求妹、什么是單向數(shù)據(jù)流動(dòng)

  這個(gè)概念出現(xiàn)在組件通信乏盐。數(shù)據(jù)從父級(jí)流向子級(jí),數(shù)據(jù)本身還是父級(jí)的

  如果操作子級(jí)要改變父級(jí)的數(shù)據(jù)制恍,只能通過子級(jí)告知父級(jí)要操作哪個(gè)數(shù)據(jù)

  然后讓父級(jí)去修改自己的數(shù)據(jù)父能,修改完畢再傳給子級(jí)


22、什么是vue的計(jì)算屬性净神,有幾種用法

  computed 計(jì)算屬性何吝,能監(jiān)聽vue中數(shù)據(jù)的變化,當(dāng)數(shù)據(jù)發(fā)生變化時(shí)候會(huì)觸發(fā)

  1鹃唯、函數(shù)形式

computed:{

? ? ? ? ? ? listenArr(){? ? ? ? ?

? ? ? ? ? ? //使用data中數(shù)據(jù)爱榕,自動(dòng)幫你監(jiān)聽數(shù)據(jù)的變化//返回的結(jié)果就是通過改變數(shù)據(jù) 做的另一件事情? ? ? ? ? ? ? ? ? ? }

? ? ? ? }

2、對(duì)象形式

? ? ? ? computed:{

? ? ? ? ? ? listenArr:{

? ? ? ? ? ? ? ? get(){

? ? ? ? ? ? ? ? ? ? //獲取時(shí)候? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? set(newVal){

? ? ? ? ? ? ? ? ? ? //修改時(shí)候? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? //當(dāng)使用get set時(shí)候坡慌,computed中定義的屬性為一個(gè)對(duì)象

//不使用get set時(shí)候黔酥,computed中定義的屬性可以是一個(gè)函數(shù)

23、說一下vue組件之間的傳遞

  父級(jí)傳遞子級(jí):

  首先在子組件上加一個(gè)v-bind:自定義屬性,等于父級(jí)的數(shù)據(jù)八匠,子組件通過props方法接收數(shù)據(jù)

  子級(jí)傳遞父級(jí):

  在子組件上綁定一個(gè)自定義事件絮爷,并且傳入父級(jí)的“事件”處理函數(shù)

  在子組件內(nèi)部使用$emit監(jiān)聽這個(gè)自定義事件,this.$emit('自定義事件名',參數(shù))


24梨树、vue中computed和watch的區(qū)別

  computed能夠監(jiān)聽vue數(shù)據(jù)上的變化坑夯,頁面上來就執(zhí)行一次,每改變一次數(shù)據(jù)就又觸發(fā)抡四,在操作數(shù)據(jù)的時(shí)候柜蜈,會(huì)派生出另一個(gè)事情

  watch當(dāng)指定數(shù)據(jù)發(fā)生變化時(shí)候觸發(fā)。一開始不會(huì)觸發(fā)指巡,只有指定的數(shù)據(jù)發(fā)生變化就又觸發(fā)一次

  watch可以deep深度添加淑履,computed不可以


25、對(duì)vue中nextTick的理解

  vue中nextTick可以拿到更新后的DOM元素

  如果在mounted下不能準(zhǔn)確拿到DOM元素藻雪,可以使用nextTick

  在Vue生命周期的created()鉤子函數(shù)進(jìn)行的DOM操作一定要放在Vue.nextTick()的回調(diào)函數(shù)中


26秘噪、自定義指令(v-check,v-focus) 方法有哪些? 它有哪些鉤子函數(shù)? 有哪些鉤子函數(shù)參數(shù)

  全局定義指令:在vue對(duì)象的directive方法里面有兩個(gè)參數(shù),分別為指令名稱、函數(shù)組件內(nèi)定義指令:directives

  鉤子函數(shù): bind(綁定事件出發(fā))勉耀、inserted(節(jié)點(diǎn)插入時(shí)候觸發(fā))指煎、update(組件內(nèi)相關(guān)更新)

  鉤子函數(shù)參數(shù): el、binding


27便斥、如何優(yōu)化SPA應(yīng)用的首屏加載速度慢的問題

  1)將公用的JS庫通過script標(biāo)簽外部引入至壤,讓瀏覽器并行下載資源文件,提高下載速度

  2)在配置 路由時(shí)枢纠,頁面和組件使用懶加載方式引入像街,在調(diào)用組件時(shí)再加載對(duì)應(yīng)的js文件

  3)加一個(gè)首屏 loading 圖,提升用戶體驗(yàn)


28、請(qǐng)分別說出vue修飾符trim镰绎、number脓斩、lazy的作用

  trim:用來過濾前后的空格

  number:將用戶輸入的數(shù)據(jù)綁定為number類型

  lazy:使用了這個(gè)修飾符將會(huì)從“input事件”變成change事件進(jìn)行同步


29、vue-router 有哪幾種導(dǎo)航鉤子跟狱,它們有哪些參數(shù)

  全局導(dǎo)航鉤子:to俭厚、from、next

  組件內(nèi)的鉤子:beforeRouteEnter驶臊、beforeRouteUpdate挪挤、beforeRouteLeave

  單個(gè)路由獨(dú)享的鉤子:beforeEnter


30、路由之間如何進(jìn)行跳轉(zhuǎn)

  聲明式(標(biāo)簽跳轉(zhuǎn)) <router-link :to="xxx">

  編程式( js 跳轉(zhuǎn)) router.push('index')


31关翎、說一下懶加載(按需加載路由)

  webpack 中提供了 require.ensure()來實(shí)現(xiàn)按需加載扛门。以前引入路由是通過 import 這樣的方式引入,改為 const 定義的方式進(jìn)行引入

  不進(jìn)行頁面按需加載引入方式

import home from '../common/home.vue'

進(jìn)行頁面按需加載的引入方式:

const home = r => require.ensure( [], () => r (require('../common/home.vue')))

32纵寝、vue中$router和$route區(qū)別

  router是VueRouter的一個(gè)對(duì)象论寨,通過Vue.use(VueRouter),和VueRouter構(gòu)造函數(shù)得到一個(gè)router的實(shí)例對(duì)象

  route是一個(gè)跳轉(zhuǎn)的路由對(duì)象爽茴,每一個(gè)路由都會(huì)有一個(gè)route對(duì)象

  是一個(gè)局部的對(duì)象葬凳,可以獲取對(duì)應(yīng)的name,path,params,query等


33、vue-loader是什么室奏?使用它的用途有哪些

  vue文件的一個(gè)加載器火焰,跟template/js/style轉(zhuǎn)換成js模塊

  用途:js可以寫es6、style樣式可以scss或less胧沫、template可以加jade等


34昌简、vue-router中query與params區(qū)別

  ?query和params兩者都是在Vue路由中傳參

  query用path來引入,params只能用name來傳遞绒怨,不能使用path?

  query更像get請(qǐng)求(地址欄會(huì)顯示參數(shù))纯赎,而params更像post(不會(huì)在地址欄顯示參數(shù))


35、怎么定義vue-router的動(dòng)態(tài)路由南蹂?怎么獲取傳過來的動(dòng)態(tài)參數(shù)

  在router目錄下的index.js文件中犬金,對(duì)path屬性加上/:id

  使用router對(duì)象的params.id


36、嵌套路由怎么定義

  在 VueRouter 的參數(shù)中使用 children 配置六剥,這樣就可以很好的實(shí)現(xiàn)路由嵌套

  children 里面是子路由晚顷,當(dāng)然子路由里面還可以繼續(xù)嵌套子路由


37、active-class是哪個(gè)組件的屬性仗考?

  vue-router模塊的router-link組件


38、舉例vue常用的路由對(duì)象词爬,以及作用

  $route.name 當(dāng)前路由的名稱

  $route.path 當(dāng)前路由對(duì)象的路徑

  $route.meta 在路由里面埋一個(gè)字段,當(dāng)切換路由時(shí)候把信息傳過去

  $route.query 查詢信息包含路由中查詢參數(shù)的鍵值對(duì)

  $route.hash 當(dāng)前路徑的哈希值,帶#

  $route.params 預(yù)設(shè)的變量锅锨,切換時(shí)候通過parmas帶過去某個(gè)id的值


39叽赊、請(qǐng)說出vue.cli項(xiàng)目中src目錄每個(gè)文件夾和文件的用法

  main.js是入口文件

  app.vue是一個(gè)主組件

  view放視圖頁面

  components放組件

  router是定義路由相關(guān)的配置

  assets文件夾是放靜態(tài)資源


40必指、vue.cli中怎樣使用自定義的組件

  第一步:在components目錄新建你的組件文件

  第二步:在需要用的頁面(組件)中導(dǎo)入

  第三步:注入到vue的子組件的components屬性上面

  第四步:在template視圖view中使用


41、什么是vue生命周期恕洲,作用是什么塔橡,第一次頁面加載會(huì)觸發(fā)哪幾個(gè)鉤子

  vue實(shí)例從創(chuàng)建到銷毀的過程

  也就是從開始創(chuàng)建、初始化數(shù)據(jù)霜第、編譯模板葛家、掛載Dom→渲染、更新→渲染泌类、卸載等一系列過程癞谒,我們稱這是 Vue 的生命周期

  作用:生命周期中有多個(gè)事件鉤子,讓我們?cè)诳刂芕ue實(shí)例的過程時(shí)更容易形成好的邏輯

  第一次頁面加載時(shí)會(huì)觸發(fā) beforeCreate, created, beforeMount, mounted 這幾個(gè)鉤子


42刃榨、簡單描述每個(gè)周期具體適合哪些場景

  beforecreate : 可以在這加個(gè)loading事件弹砚,在加載實(shí)例時(shí)觸發(fā)

  created : 初始化完成時(shí)的操作,比如結(jié)束loading事件枢希,也可以操作異步請(qǐng)求

  mounted : 掛載元素翼岁,獲取到DOM節(jié)點(diǎn),推薦使用nextTick

  updated : 如果對(duì)數(shù)據(jù)統(tǒng)一處理肢预,在這里寫上相應(yīng)函數(shù)

  beforeDestroy : 可以做一個(gè)確認(rèn)停止事件的確認(rèn)框谨娜,關(guān)掉定時(shí)器

  destroyed:當(dāng)前組件已被刪除,清空相關(guān)內(nèi)容


43呕屎、說一下vue中slot插槽

  插槽就是vue實(shí)現(xiàn)的一套內(nèi)容分發(fā)的API让簿,將插槽元素作為承載分發(fā)內(nèi)容的出口。

  在組件模板中默認(rèn)占一個(gè)位置秀睛,當(dāng)使用組件標(biāo)簽時(shí)候尔当,組件標(biāo)簽的內(nèi)容會(huì)自動(dòng)替換掉內(nèi)容

  slot中可以設(shè)置一些默認(rèn)的內(nèi)容,如果傳遞了內(nèi)容則會(huì)替換掉蹂安,如果沒有名字的標(biāo)簽會(huì)默認(rèn)放到default中


44椭迎、computed、watch各是一個(gè)對(duì)象時(shí)田盈,它們有哪些選項(xiàng)畜号? computed 和 methods 有什么區(qū)別? computed 是否能依賴其它組件的數(shù)據(jù)允瞧?

  computed有g(shù)et set兩個(gè)選項(xiàng)

  watch有handler deep 是否深度简软,immeditate 是否立即執(zhí)行

  methods是一個(gè)對(duì)象蛮拔,可以在對(duì)象中定義一個(gè)個(gè)方法,能接受參數(shù)痹升,而computed不能

  computed是可以緩存的建炫,methods不會(huì)

  computed可以依賴其他computed,甚至是其他組件的data


45疼蛾、如何理解Vue中的Render渲染函數(shù)

  Vue一般使用template來創(chuàng)建HTML肛跌,然后有的時(shí)候,我們需要使用javascript來創(chuàng)建html察郁,這時(shí)候我們需要使用render函數(shù)

  render函數(shù)return一個(gè)createElement組件中的子元素存儲(chǔ)在組件實(shí)列中

  createElement返回的是包含的信息會(huì)告訴VUE頁面上需要渲染什么樣的節(jié)點(diǎn)衍慎。我們稱這樣的節(jié)點(diǎn)為虛擬DOM


46、vuex是什么绳锅?怎么使用西饵?哪種功能場景使用它?

  vuex是vue框架中的狀態(tài)管理器

  在main.js引入store鳞芙,注入眷柔,新建了一個(gè)目錄store,export導(dǎo)出

  適用場景:單頁應(yīng)用中原朝,組件之間的狀態(tài)驯嘱。音樂播放、登錄狀態(tài)喳坠、加入購物車


47鞠评、在Vue生命周期的created()鉤子函數(shù)進(jìn)行的DOM操作一定要放在Vue.nextTick() 回調(diào)函數(shù)中。原因是什么呢

  在 created() 鉤子函數(shù)執(zhí)行的時(shí)候DOM其實(shí)并未進(jìn)行任何渲染壕鹉,而此時(shí)進(jìn)行 DOM 操作無異于徒勞剃幌,

  所以在數(shù)據(jù)變化后要執(zhí)行的某個(gè)操作,而這個(gè)操作需要使用隨數(shù)據(jù)改變而改變的DOM結(jié)構(gòu)的時(shí)候晾浴,這個(gè)操作都應(yīng)該放進(jìn)Vue.nextTick() 的回調(diào)函數(shù)中


48负乡、vuex中store的特性是什么

  vuex 就是一個(gè)倉庫,倉庫里放了很多對(duì)象脊凰。

  其中 state 就是數(shù)據(jù)源存放地抖棘,對(duì)應(yīng)于一般 vue 對(duì)象里面的 data

  state 里面存放的數(shù)據(jù)是響應(yīng)式的,vue 組件從 store 讀取數(shù)據(jù)狸涌,若是 store 中的數(shù)據(jù)發(fā)生改變切省,依賴這相數(shù)據(jù)的組件也會(huì)發(fā)生改變

  它通過 mapState 把全局的 state 和 getters 映射到當(dāng)前組件的 computed 計(jì)算屬性


49、vue中ajax請(qǐng)求代碼應(yīng)該寫在組件的 methods 中還是vuex的action中帕胆?

  如果請(qǐng)求來的數(shù)據(jù)不是要被其他組件公用朝捆,僅僅在請(qǐng)求的組件內(nèi)使用,就不需要放入 vuex 的 state 里

  如果被其他地方復(fù)用懒豹,請(qǐng)將請(qǐng)求放入 action 里芙盘,方便復(fù)用诊杆,并包裝成 promise 返回


50、說一下vuex的思想

  Vuex 的思想是 當(dāng)我們?cè)陧撁嫔宵c(diǎn)擊一個(gè)按鈕何陆,它會(huì)觸發(fā)(dispatch)一個(gè)action, action 隨后會(huì)執(zhí)行(commit)一個(gè)mutation, mutation 立即會(huì)改變state,

   state 改變以后,我們的頁面會(huì)state 獲取數(shù)據(jù),頁面發(fā)生了變化豹储。 Store 對(duì)象贷盲,包含了我們談到的所有內(nèi)容,action, state, mutation

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末剥扣,一起剝皮案震驚了整個(gè)濱河市巩剖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钠怯,老刑警劉巖佳魔,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異晦炊,居然都是意外死亡鞠鲜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門断国,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贤姆,“玉大人,你說我怎么就攤上這事稳衬∠技瘢” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵薄疚,是天一觀的道長碧信。 經(jīng)常有香客問我,道長街夭,這世上最難降的妖魔是什么砰碴? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮莱坎,結(jié)果婚禮上衣式,老公的妹妹穿的比我還像新娘。我一直安慰自己檐什,他們只是感情好碴卧,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乃正,像睡著了一般住册。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瓮具,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天荧飞,我揣著相機(jī)與錄音凡人,去河邊找鬼。 笑死叹阔,一個(gè)胖子當(dāng)著我的面吹牛挠轴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耳幢,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼岸晦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了睛藻?” 一聲冷哼從身側(cè)響起启上,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎店印,沒想到半個(gè)月后冈在,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡按摘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年包券,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炫贤。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡兴使,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出照激,到底是詐尸還是另有隱情发魄,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布俩垃,位于F島的核電站励幼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏口柳。R本人自食惡果不足惜苹粟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望跃闹。 院中可真熱鬧嵌削,春花似錦、人聲如沸望艺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽找默。三九已至艇劫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惩激,已是汗流浹背店煞。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國打工蟹演, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顷蟀。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓酒请,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鸣个。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蚌父,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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