小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

vue-3.0問(wèn)題 自己收藏

 印度阿三17 2019-06-24

一、樣式問(wèn)題

1.vue中使用less

安裝less依賴?npm install less less-loader --save-dev

在使用時(shí) 在style標(biāo)簽中加入?lang="less"?也可以加上scoped代表樣式只在此作用域中有效。

2.使用element插件時(shí)修改其樣式,在vue中不起作用,這里有幾種方法可以嘗試

  • 如果?style?中加了?scoped?去掉它。
  • 在要改變的樣式前加?/deep/
 /deep/.el-submenu__title .el-icon-arrow-down{
    margin-top:-5px;
}

二、vue-router?問(wèn)題

1.去掉vue項(xiàng)目路徑中的?#

主要用到router?的?history模式。官網(wǎng)說(shuō)的很詳細(xì),以及注意點(diǎn):vue-router官網(wǎng) HTML5 History模式

2.當(dāng)我們通過(guò)router 中的query從一A頁(yè)面想給B頁(yè)面?zhèn)鬟f一個(gè)Object 對(duì)象形式的數(shù)據(jù)時(shí),第一次B頁(yè)面可以拿到數(shù)據(jù),但是刷新B頁(yè)面后,數(shù)據(jù)會(huì)消失。這里有一下解決方法:

  • 將A頁(yè)面的數(shù)據(jù)通過(guò) JSON.stringify() 變成字符串,傳遞
  • 將A頁(yè)面數(shù)據(jù)存儲(chǔ)在sessionStorage 中,B頁(yè)面同該sessionStorage 獲取
  • 后臺(tái)提供單獨(dú)的接口,在B頁(yè)面請(qǐng)求A頁(yè)面?zhèn)鬟^(guò)來(lái)的數(shù)據(jù)

三、頁(yè)面預(yù)渲染(seo優(yōu)化問(wèn)題)

官網(wǎng)也指出,如果你只是為了改善營(yíng)銷頁(yè)面的SEO優(yōu)化,你可能需要預(yù)渲染了。而無(wú)需使用web服務(wù)器實(shí)時(shí)動(dòng)態(tài)變異html,而是使用預(yù)渲染方式,在構(gòu)建時(shí)簡(jiǎn)單地生成針對(duì)特定路由的靜態(tài) HTML 文件

1.預(yù)渲染

如果你想要預(yù)渲染需要使用?prerender-spa-plugin?插件來(lái)處理你的文件。這里建議你直接看官網(wǎng)的api,?2.x版本的和3.x版本的api不同。所以建議直接看官網(wǎng)了解最新的api。?prerender-spa-plugin GitHub

const path = require('path')
const PrerenderSPAPlugin = require('prerender-spa-plugin')

module.exports = {
  plugins: [
    ...
    new PrerenderSPAPlugin({
      // 生成文件的路徑
      staticDir: path.join(__dirname, 'dist'),
      // 對(duì)應(yīng)路由生成的目錄
      routes: [ '/', '/about', '/some/deep/nested/route' ],
    })
  ]
}

另外為頁(yè)面做Meta SEO優(yōu)化 可以使用?vue-meta-info?GitHub地址

vue-meta-info的相關(guān)文章

四、數(shù)據(jù)響應(yīng)失效

首先在Vue.js?中對(duì)象的響應(yīng)時(shí)依賴Object.defineProperty?方法的,而對(duì)于數(shù)組是沒(méi)有這個(gè)方法的。

這里需要注意,如果數(shù)組中是對(duì)象,當(dāng)對(duì)象里數(shù)據(jù)變化時(shí)是可以渲染的,如果類似[0,1,2,3]這樣的數(shù)組,數(shù)據(jù)變化時(shí),是不會(huì)渲染的。

所以數(shù)組存儲(chǔ)的數(shù)據(jù)在更改時(shí)是沒(méi)有響應(yīng)變化的。所以Vue提供了$set()?方法:?官網(wǎng)

vue.array.$set(0,'change')

五、數(shù)據(jù)雙向綁定問(wèn)題

1.在使用vuex時(shí),我們兩個(gè)模塊可能使用同一個(gè)數(shù)據(jù),比如兩模塊中的表單使用的是同一個(gè)數(shù)據(jù),當(dāng)其中一個(gè)模塊中的表單填寫(xiě)好時(shí),我們進(jìn)入另一個(gè)模塊表單時(shí),也會(huì)顯示該數(shù)據(jù),如果該數(shù)據(jù)少還可以,如果有很多字段,我們一個(gè)一個(gè)清空會(huì)和麻煩,我這里解決的辦法就是:使用JSON.stringify?和?JSON.parse()


let evaluateReq = { // 初始數(shù)據(jù)
    type:'0',
    pageSize:10,
    pageNum:1,
}

const state = {
    evaluateListReq:JSON.parse(JSON.stringify(evaluateReq)), 
}

這樣做,當(dāng)我們初始化?evaluateListReq?數(shù)據(jù)時(shí),可以講?evaluateReq?數(shù)據(jù) 通過(guò)?mutations?賦值給evaluateListReq,如果我們這里不使用JSON.stringify?和?JSON.parse()?而直接賦值,?evaluateReq?中的數(shù)據(jù)與?evaluateListReq?會(huì)被vue認(rèn)為是同一個(gè)數(shù)據(jù),都綁定上,一個(gè)值變化,都會(huì)隨著變化。

六、使用Element(餓了么)插件問(wèn)題

1.<le-input>表單使用回車觸發(fā)事件。

<el-input?@keyup.enter.native="onSubmit" ></el-input>

這里需要在@keyup.enter?后面加上native才會(huì)觸發(fā)回車事件。這個(gè)東西在一些實(shí)際上處理 DOM 原生事件的場(chǎng)合才需要添加額外的標(biāo)識(shí)符。

2.當(dāng)瀏覽器窗口變小時(shí),el-table組件寬度不隨窗口響應(yīng)變小。

這里我們需要沖突掉Element?中el-table?的?max-width:100%?樣式,該值不能設(shè)置成100%,可以改成99%,小于100%即可。

.el-table{
   max-width:99.9%
}

七、axios 交互問(wèn)題

1.vue中創(chuàng)建excel 的下載,解決excel下載亂碼問(wèn)題

我們可以在axios的請(qǐng)求攔截或響應(yīng)攔截中去動(dòng)態(tài)創(chuàng)建a標(biāo)簽下載excel

function excelDown(res){  // excel 下載請(qǐng)求
  //application/vnd.openxmlformats-officedocument.spreadsheetml.sheet這里表示xlsx類型
  var blob = new Blob([res.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'});
  var downloadElement = document.createElement('a');
  var href = window.URL.createObjectURL(blob); //創(chuàng)建下載的鏈接
  downloadElement.href = res.request.responseURL  `&token=${sessionStorage.JRYC_TOKEN}`;
  downloadElement.download = '列表.xls'; //下載后文件名
  document.body.appendChild(downloadElement);
  downloadElement.click(); //點(diǎn)擊下載
  document.body.removeChild(downloadElement); //下載完成移除元素
  window.URL.revokeObjectURL(href); //釋放掉blob對(duì)象
}


axios.interceptors.response.use(res => {

   if (res.headers['content-type'] == 'application/vnd.ms-excel' || res.headers['content-type'] == 'application/vnd.ms-excel;charset=UTF-8') {
        excelDown(res)
        return {code:0,state:'success'}
    }else{
      return res
    }
})

八、其它注意事項(xiàng)

1.使用v-for 時(shí)我們盡量攜帶key值,以方便vue的渲染。

v-for="(item, index) in list"?class="list"?:key="index"

2.在使用?import ... from ...?引入同級(jí)目錄下的組件時(shí),盡量加上?./?, 不然有時(shí)會(huì)報(bào)錯(cuò)

import?Header?from?'./Header';

3.使用$emit?不起作用,這里我建議你在子組件綁定父組件事件時(shí) 使用?v-on?全寫(xiě),盡量不使用@?縮寫(xiě),因?yàn)槭褂?code>@?縮寫(xiě)有時(shí)會(huì)不起作用

<edit-add-ver v-on:childMethodShow="showEdit"></edit-add-ver>
來(lái)源:https://www./content-4-264051.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多