web前端框架vue基礎知識

vue中如何封裝一個組件?
首先定義一個后綴名為.vue的文件,文件內部由三部分組成,template模板部分,script邏輯部分,style樣式部分。這三部分是組件的核心部分,組件需要哪些結構,在模板部分書寫,需要什么樣的外觀樣式,通過style部分書寫,有哪些行為在script部分書寫。一定要在script部分使用es6模塊化的導出語法(export default{}),進行導出。然后在需要調用組件的地方使用es6模塊化導入語法導入即可,組件需要哪些參數,直接在調用部分進行傳遞即可。主要邏輯還是在組件中完成。

談談對vue中插槽的理解?
vue中的插槽分為三種,匿名插槽,具名插槽,作用域插槽。
通過插槽可以動態(tài)指定某一個組件模板部分的渲染,我們在調用組件的時候,在組件的調用標簽中間傳遞了什么樣的標簽結構,那么該組件就會把我們傳遞的標簽結構放在他的模板部分進行渲染。

v-show和v-if在隱藏一個元素的時候有什么不同,應該如何來選擇?
v-show是通過css的方式來隱藏元素,而v-if是根據條件是否成立決定是否要創(chuàng)建元素。如果某個元素需要頻繁切換顯示狀態(tài)的話,建議使用v-show,因為頻繁創(chuàng)建銷毀DOM需要性能消耗。

什么是Vuex,在哪種場景下使用?
Vuex是針對vue的一個狀態(tài)管理工具,有幾個核心部分:
state 存儲狀態(tài)數據;
mutations 更新數據的方法;
actions 調用mutations中的方法,更新state數據;
getters 對state中的數據進行預處理;
當組件關系比較復雜的時候,可以使用vuex簡化組件間的傳值。

說說vue路由的使用步驟?
第一步:下載路由模塊vue-router;
第二步:創(chuàng)建路由對象;
第三步:配置路由規(guī)則;
第四步:將路由對象注冊為vue實例對象的成員屬性

常見的vue組件庫有哪些?
PC端:element-ui(餓了么團隊),ant-design(阿里螞蟻金服團隊),iview
移動端:mint-ui,vant,vux

談下對于MVVM的理解?
MVVM由三部分組成M(model數據層),V(view視圖層),VM(view-model視圖模型層)。是一種框架的設計思想,vue就是基于mvvm來設計的。其中M(model)層負責初始化數據,V(view)只負責頁面展示,VM(view-model)用來連接view層和model層,將數據層的數據傳遞一個視圖層進行展示,將視圖層的操作傳遞到數據層進行持久化。

談下vue的聲明周期?
創(chuàng)建階段:只執(zhí)行一次
beforeCreate(開始進行一些數據和方法的初始化操作,data中的數據和methods中的方法還不能用),
created(已經完成數據和方法的初始化,data中的數據和methods中的方法可以使用了),
beforeMount(開始渲染虛擬DOM),
mounted(已經完成了虛擬DOM的渲染,可以操作DOM了,只執(zhí)行一次)
運行階段:執(zhí)行多次
beforeUpdate(data中的數據即將被更新,會執(zhí)行多次)
updated(data中的數據已經更新完畢,會執(zhí)行多次)
銷毀階段:只執(zhí)行一次
beforeDestroy(vue實例即將銷毀,此時data中的數據和methods中的方法依然處于可用狀態(tài))
destroyed(vue實例已經銷毀,此時data中的數據和methods中的方法已經不可用)

Vue中有幾種路由模式?
vue中的路由模式有兩種;hash和history;默認是hash模式;可以在創(chuàng)建路由對象的時候,使用mode屬性來切換路由模式。
const router = new Router({mode:'history'})

vue路由導航守衛(wèi)是什么?以及它的應用場景?
路由守衛(wèi)是在頁面進行路由跳轉的時候做一些處理,比如攔截。
vue-router中提供了下面幾種路由導航守衛(wèi):
全局前置守衛(wèi)

const router = new VueRouter({ ... })

    router.beforeEach((to,from,next) =>{
        // from 從哪來
        // to 到哪里去
        // next是否要放行
    })

全局后置鉤子

    router.afterEach((to,from)=>{
        // ...
    })

路由獨享守衛(wèi):在聲明路由的時候,針對特定路由的構造函數

const router = new VueRouter({
        routes: [
        {
            path: '/foo',
            component: Foo,
            beforeEach: (to,from,next)=>{
                // ...
            }
        }
    ]
    })

Vue有哪些常用的事件修飾符?
.prevent 阻止默認事件;
.stop 阻止冒泡;
.once 事件執(zhí)行一次;
.self 只當在event.target是當前元素自身時觸發(fā)處理函數

列舉vue中常用的指令?
v-model:實現雙向數據綁定;
v-bind:綁定屬性;
v-on:注冊事件;
v-html:設置標簽內容(允許內容html)
v-text:設置標簽的內容(不允許包含html)
v-cloak:解決插值表達式閃爍問題
v-for:循環(huán)遍歷數組或對象

vue中如何解決插值表達式閃爍問題?
使用v-html或v-text替代插值表達式;
使用v-cloak解決插值表達式閃爍,
第一步:聲明屬性選擇器[v-cloak]{display:none}
第二步:在插值表達式所在標簽添加屬性v-cloak

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 33、JS中的本地存儲 把一些信息存儲在當前瀏覽器指定域下的某一個地方(存儲到物理硬盤中)1、不能跨瀏覽器傳輸:在...
    萌妹撒閱讀 2,256評論 0 2
  • 本文章是我最近在公司的一場內部分享的內容。我有個習慣就是每次分享都會先將要分享的內容寫成文章。所以這個文集也是用來...
    Awey閱讀 9,590評論 4 67
  • 要招一個會vue的開發(fā)者: 作為面試官的你,你還會每次都只是問這些老土的問題嗎?你對MVVM的理解是什么?你知道什...
    浪子神劍閱讀 23,287評論 0 260
  • vue 編碼步驟 引入vue.js文件 定義一個vue的管理范圍 vue1.0里面vue的管理區(qū)域的id...
    freedomsky0612閱讀 2,016評論 2 1
  • 一. Vue核心小知識點 1、vue中 key 值的作用 key 的特殊屬性主要用在 Vue的虛擬DOM算法,在新...
    倚劍闖天涯_閱讀 1,874評論 0 12

友情鏈接更多精彩內容