鍍金池/ 問答/ HTML問答
壞脾滊 回答

之所以報錯 是因為默認使用了屬性的簡潔表示法

const baz = {foo};
// 等同于
const baz = {foo: foo};

var data = {
            tableData: this.tableData,
            observerValue: this.observerValue
}
// 不會報錯

ES6 允許在對象之中,直接寫變量。這時,屬性名為變量名, 屬性值為變量的值。

替身 回答

傳入選項underscored:true

孤客 回答

響應體組成

字段 含義
code 服務端處理業(yè)務后的返回代碼,其中包含公共響應代碼和當前業(yè)務特有代碼
組成右 http_code+3位數(shù)字,成功除外,成功使用200表示,其他的,如
客戶端請求權限錯誤 401001
msg 服務端處理后返回給客戶端的提示性文字,當然,客戶端不應該直接使用此
提示,而是根據(jù)code自定義提示語給用戶
data 處理業(yè)務邏輯后需要返回的數(shù)據(jù),必須為一個對象,而非任何標量值。
session 這里的session并不是傳統(tǒng)http中的session,而是單次會話的標識符,因為在
客戶端調用API的過程中,難免會遇到數(shù)據(jù)問題,導致不好調試,所以應該將
所有的請求記錄放進去日志,然后當客戶端出現(xiàn)問題時根據(jù)請求的session來
定位是哪一個會話,然后使用postman對請求進行重放調試,除了請求日志,
還應該保存請求日志

公共響應代碼

除了業(yè)務響應代碼,應該還有一些公共響應代碼

code 示例
200 請求成功
401001 用戶身份失效
400001 請求參數(shù)錯誤
404001 服務沒有數(shù)據(jù)

....

離殤 回答

失敗原因:其中一個工程的https是在tomcat下配置的,導致443端口被占用,把tomcat的進程kill掉就可以了

故林 回答
  1. setState 只在合成事件和鉤子函數(shù)中是“異步”的,在原生事件和 setTimeout 中都是同步的。
  2. setState的“異步”并不是說內部由異步代碼實現(xiàn),其實本身執(zhí)行的過程和代碼都是同步的,只是合成事件和鉤子函數(shù)的調用順序在更新之前,導致在合成事件和鉤子函數(shù)中沒法立馬拿到更新后的值,形式了所謂的“異步”,當然可以通過第二個參數(shù) setState(partialState, callback) 中的callback拿到更新后的結果。
  3. setState 的批量更新優(yōu)化也是建立在“異步”(合成事件、鉤子函數(shù))之上的,在原生事件和setTimeout 中不會批量更新,在“異步”中如果對同一個值進行多次 setStatesetState 的批量更新策略會對其進行覆蓋,取最后一次的執(zhí)行,如果是同時 setState 多個不同的值,在更新時會對其進行合并批量更新。
執(zhí)念 回答

Without automatic selection
HTML部分:
<div data-toggle="distpicker" id="area-group" >

                <select data-province="----請選擇省----" name="eprovinceName" id="eprovinceName"></select><!--省-->
                <select data-city="----請選擇市----" name="ecityName" id="ecityName"></select><!--市-->
                <select data-district="----請選擇區(qū)----" name="edistrictName" id="edistrictName"></select><!--區(qū)-->
            </div>

JavaScript部分:
$("#distpicker").distpicker({
autoSelect: false
});
效果圖:

clipboard.png

具體可參見這個鏈接,下載,里面有各種效果演示
http://www.thinkphp.cn/code/1...

選擇 回答

你可以訪問這個路由對應的路徑,看組件是否正常加載了

舊言 回答

官方文檔中并沒有@on-change這個api

墨沫 回答

是babel-loader沒有1.0.1這個版本了,還是bable-loader@^1.0.1這種寫法不對

司令 回答

使用

phpinfo();

打印看看 upload_max_filesize 和 post_max_size 設置成功沒

你看看 這個路徑 進入對應更改php.ini
圖片描述

蝶戀花 回答

模擬數(shù)據(jù)解決了

不將就 回答

不建議使用RSA加密大量數(shù)據(jù) 因為會有性能問題。但是我們后臺已經做完了,所以不能更改了,一開始我們也是自己使用js寫了一個分段加解密的,可以使用,但是遇到了一些問題,在加解密中如果分段的部分包括正文字符再次合并解密后會出現(xiàn)亂碼。最終還是將解密部分放到原生了。

莫小染 回答

js 的原生方法沒有問題,你可以監(jiān)控下 time 在組件的值,打印出來,看是否為 Date 的實例

夢一場 回答
document.getElementById('tableBox').getElementsByClassName('el-table__body-wrapper')[0].scrollTop =
        document.getElementById('player'+playId).parentNode.parentNode.parentNode.offsetTop
祉小皓 回答

看完了,沒毛病。
三元二次代替else if和代碼變量簡略(文件又減肥了)。

膽怯 回答

HTML:

<div class='price'>
    <p>59800</p>
</div>

CSS:

.price {
    position: relative;
    height: 1.5em;
}
.price > p {
    font-size: 1.2em;
    color: #F79200;
    padding-left: 1.5em;
    font-weight: bold;
}
.price::before {
    content: '¥';
    display: block;
    position: absolute;
    left: 0;
    top: .3em;
    width: 1.5em;
    height: 1.5em;
    text-align: center;
    border: 1px solid #F79200;
    color: #F79200;
    border-radius: 50%;
    font-size: .8em;
}
傻叼 回答

監(jiān)聽滾動事件,判斷當前$('#section_01')的scrollTop+height是不是等于scrollHeight

我甘愿 回答

問題分析

這是一個很好的問題。

  • created 鉤子中,verifyImgthen 內賦值,但 verifyUrl 卻在 then 外賦值,這會導致 verifyUrl 賦值早于 verifyImg。你可以在這兩個賦值語句上分別打個斷點,看下哪個先執(zhí)行,然后加深一下對 promise、異步的理解。
getVerify().then(response => {
  this.verifyImg = response
})
this.verifyUrl = this.verifyImg // 這一句會早于 promise then 中的賦值語句執(zhí)行
  • @廈冰 的回答下你的評論中,提到前后端分離,以及你在 dev.env.js 定義后端地址。前后端分離的一個比較便利的開發(fā)實踐是使用 proxy 將請求中當前 dev server 下的相對路徑代理為后端路徑,你可以直接通過 Vue cliwebpack 項目模板來學習如何設置和使用 proxyVue cli webpack 項目模板文檔 API Proxying During Development。如果不使用代理,即使在 dev.env.js 中定義了后端地址,你的相對路徑請求仍然會發(fā)送到 dev server,這大概是 Uncaught (in promise) error(估計是一個 404 錯誤,因為你實際發(fā)起的請求指向了 localhost)產生的原因。
  • AJAX 請求的本質。AJAX 是發(fā)起一個請求并獲取其響應,因此當你去請求 /base/getVerify 時,如果沒有發(fā)生Uncaught (in promise) error,實際獲取的是后端對這個請求的響應,這里是一個圖片文件的內容。
  • img src 屬性的取值。imgsrc 屬性是一個圖片地址,因此,這個屬性可以設置為一個 url 路徑,或者是一個 dataURL,正如 @minororange 的回答中建議的,你可以在 /base/getVerify 響應中返回一個 base64 dataURL。但這個屬性不應該設置為一個圖片文件的內容,即使你在這里使用了代理,如果返回的內容不是一個 dataURL,才可以直接將 src 綁定到 verifyUrl
  • 驗證碼的刷新。refreshVerify 組件方法本身沒問題,但當一個路徑是一個 圖片文件內容 + queryString 的時候,錯誤是明顯的。
  • 調試技巧。當 Uncaught (in promise) error 錯誤發(fā)生時,開發(fā)者工具中一定還有更為有用的信息可供參考,你需要去找到它、學會分析。

建議的解決方案

首先需要設置開發(fā)代理,具體參考 Vue cli webpack 項目模板文檔。

在設置好開發(fā)代理的前提下,可以根據(jù)上面的分析來解決問題,有如下兩個途徑:

  1. dataURL。即 @minororange 回答中建議的方法。但需要后端配合,修改驗證碼請求返回的結果,相應的 refreshVerify 方法也要修改。
  2. 直接在組件數(shù)據(jù)中設置 verifyUrl 初始值為 '/base/getVerify?v=' + window.moment().unix(),不需要 created 鉤子進行初始化,然后在 refreshVerify 組件方法中重設(咦?)為 this.verifyUrl = '/base/getVerify?v=' + window.moment().unix()
data() {
  return {
    // ... 
    verifyUrl: '/base/getVerify?v=' + window.moment().unix()
  },
},
methods: {
  refreshVerify() {
    this.verifyUrl = '/base/getVerify?v=' + window.moment().unix()
  },
  // ...
}