輕松做網(wǎng)站江蘇seo平臺(tái)
一、.vue的性能優(yōu)化怎么做?
1.編碼優(yōu)化:
- 不要把所有的數(shù)據(jù)都放在data中;
- v-for時(shí)給每個(gè)元素綁定事件用事件代理;
- keep-alive緩存組件;
- 盡可能拆分組件,提高復(fù)用性、維護(hù)性;
- key值要保證唯一;
- 合理使用路由懶加載,異步組件;
- 數(shù)據(jù)持久化存儲(chǔ)的使用盡量防抖、節(jié)流優(yōu)化;
?2.加載優(yōu)化:
- 按需加載;
- 內(nèi)容懶加載;
- 圖片懶加載;? ? ? ?
3.用戶體驗(yàn):
- 骨架屏?
4.SEO優(yōu)化:
- 預(yù)渲染;
- 服務(wù)端渲染ssr;?
5.打包優(yōu)化:
- ?CDN形式加載第三方模塊;
- 多線程打包;
- 抽離公共文件;
6.緩存和壓縮:
- 客戶端緩存、服務(wù)端緩存;
- 服務(wù)端gzip壓縮;?
?二、vue3和vue2有哪些區(qū)別?
1.雙向數(shù)據(jù)綁定的原理不同;
2.是否支持碎片;
3.API不同;
4.定義數(shù)據(jù)變量方法不同;
5.生命周期的不同;
6.傳值不同;
7.指令和插槽不同;
8.mian.js不同;
三、 vue中如何做強(qiáng)制刷新?
1.localtion.reload();
2.this.$router.go(0);
3.provide和inject;
四、vue的過濾器怎么使用?
用來對文本進(jìn)行格式化處理,使用方式有兩種,一個(gè)是插值表達(dá)式;一個(gè)是v-bind;
分為:
全局過濾器:
Vue.filter('add',function(v){return v < 10 ? '0'+v : v
})
<div>{{33 | add}}</div>
?局部過濾器:
和methods同級(jí),
filter:{add:function(v){return v < 10 ? '0'+v : v}
}?
五、封裝一個(gè)可復(fù)用的組件,需要滿足什么條件?
1.低耦合,組件之間的依賴越小越好;
2.從父級(jí)傳入信息,不要在公共組建中請求數(shù)據(jù);
3.傳入的數(shù)據(jù)要進(jìn)行效驗(yàn);
4.處理事件的方法寫在父組件中;
六、如何封裝一個(gè)組件?
1.使用Vue.extend()創(chuàng)建一個(gè)組件;
2.使用Vue.component()方法注冊組件;
3.如果子組件需要數(shù)據(jù),可以在props中接收定義;
4.子組件修改好數(shù)據(jù),要把數(shù)據(jù)傳遞給父組件,可以用emit()方法;
原則:
? ? ? ? 把功能拆開;
? ? ? ? 盡量讓組件原子化,一個(gè)組件做一件事情;
? ? ? ? 容器組件管數(shù)據(jù),展示組件管視圖;
七、vuex的響應(yīng)式處理?
vuex是vue的狀態(tài)管理工具。
vue中可以直接觸發(fā)methods中的方法,vuex是不可以的。處理異步,當(dāng)觸發(fā)事件的時(shí)候,會(huì)通過dispatch來訪問actions中的方法,actions中的commit會(huì)觸發(fā)mutations中的方法從而修改state里的值,通過getter把數(shù)據(jù)更新到視圖。
Vue.use(vuex),調(diào)用Install方法,通過applyMixin(vue)在任意組件內(nèi)執(zhí)行this.$router就可以訪問到store對象。
vuex的state是響應(yīng)式的,借助的就是vue的data,把state存到vue實(shí)例組件的data中。
八、vue和jQuery的區(qū)別是什么?
1.原理不同:vue是數(shù)據(jù)綁定,jq先獲取dom再處理;
2.著重點(diǎn)不同:vue是數(shù)據(jù)驅(qū)動(dòng),jq是著重于頁面;
3.操作不同:vue進(jìn)行了dom操作,我們只需關(guān)注數(shù)據(jù)即可,jq先獲取dom對象,然后賦值,事件綁定等;
????????