404 表示資源不存在,這得看你接口后臺(tái)請(qǐng)求的數(shù)據(jù)是否存在,或者看接口是否可用。
看圖片是get請(qǐng)求,直接把URL放在瀏覽器地址欄請(qǐng)求下試試。
在切換模型加載第二個(gè)模型的時(shí)候,需要對(duì)容器進(jìn)行清空。
document.getElementById('domId').innerHTML="";
這樣就可以切換模型。
版本 65.0.3315.3(正式版本)dev (64 位) , Ubuntu 16.04
沒有你說的問題。
xxx.com?a=xx&b=yy
前端可以根據(jù)url內(nèi)的a或者b獲取相應(yīng)的xx或yy
那已經(jīng)提示你了:is-extglob 這個(gè)文件沒有寫權(quán)限,猜測(cè)可能是此路徑上某個(gè)文件夾沒有權(quán)限,導(dǎo)致無法創(chuàng)建此文件
動(dòng)態(tài)import返回的是一個(gè)對(duì)象,根據(jù)你forget組件的export方式,可以從對(duì)象上獲取到你的組件。
比如你的組件時(shí)用export default導(dǎo)出的,那么組件就可以從default屬性上獲取到。
另外動(dòng)態(tài)import是異步的,因此你不能直接這么用。需要使用一個(gè)組件去占住那個(gè)位置,然后在這個(gè)組件真正加載的時(shí)候,通過componentDidMount這個(gè)鉤子去import這個(gè)組件。
關(guān)鍵部分的代碼大概這樣,記得加上loading動(dòng)畫這些加載期間的提示
slice如果不傳入?yún)?shù)會(huì)返回一個(gè)淺拷貝數(shù)組副本。
call的作用是用document.getElementsByTagName("*")作為slice方法中的this調(diào)用一次slice方法;從而把dom列表轉(zhuǎn)換成真正的Array
我完全復(fù)制粘貼了你的代碼。。并沒有發(fā)生你所截圖的情況。
另外 你這注釋的方式。。在template里不是應(yīng)該遵循h(huán)tml的注釋方式么。你看我這圖里你的注釋都被當(dāng)成text輸出了。所以你這構(gòu)建環(huán)境具體怎么樣的和vue版本、package乃至開發(fā)工具都最好貼出來給大家參詳 避免玄學(xué)問題。。
historyhistory.pushState , history.replaceState修改歷史記錄history.popstate監(jiān)聽歷史記錄
默認(rèn)情況下,我們只需要將靜態(tài)資源放在一下幾個(gè)目錄中就可以直接通過url在瀏覽器中訪問了。
比如再static下放login.html,則可以直接通過 http://localhost:8080/login.html 訪問
可以下載代碼示例自己debug:https://gitee.com/skyarthur19...
html讀取是自上而下的,建議先加載css層疊樣式文件再加載js文件,這樣即使網(wǎng)慢的時(shí)候也會(huì)先顯示出大體輪廓,如果先加載js則會(huì)影響頁面樣式。
本質(zhì)是這個(gè)。
既然jquery沒有捕獲的實(shí)現(xiàn),我們自己實(shí)現(xiàn)一個(gè)。代碼如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<!--換成你自己jquery的地址-->
<script src="jquery-1.12.4.js"></script>
<title>Document</title>
</head>
<body>
<div id="xx" style="height:200px;background:green;">
<div id="yy" style="position:relative;top:50px;height:100px;background:red;"></div>
</div>
<script>
(function(debug){
// 用WeakMap省的dom被移除了還持有引用無法gc
const listeners = new WeakMap();
// core
const capture = (elem,type,callback,once=false) => {
// 看看有沒有這個(gè)dom,避免重復(fù)注冊(cè)
if(!listeners.has(elem)){
listeners.set(elem,new Map());
// https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener
elem.addEventListener(type,fnCenter,{
capture:true,
once,
});
}
const map = listeners.get(elem);
// 看看有沒有這個(gè)type的事件被注冊(cè)
if(map.has(type)){
map.get(type).push(callback);
}else{
map.set(type,[callback]);
}
};
// 所有注冊(cè)都用同一個(gè)函數(shù)引用,方便解除
const fnCenter = function(event){
// currentTarget和target的區(qū)別參見mdn
const {currentTarget,type} = event;
// currentTarget,type就是找到回調(diào)的兩把鑰匙
if(listeners.has(currentTarget) && listeners.get(currentTarget).has(type)){
const callbacksArray = listeners.get(currentTarget).get(type);
// 循環(huán)執(zhí)行回調(diào)們
callbacksArray.forEach(callback=>callback(event));
}else{
//找不到么應(yīng)該有問題,你可以選擇在此拋出錯(cuò)誤或者警告或者移除注冊(cè)
}
}
// 卸載
const remove = (elem,type) => {
// 看看注沒注冊(cè)過,沒注冊(cè)過就退出
if(!listeners.has(elem)){
return false;
}
// 沒寫type全移除,寫了type,只移除這個(gè)類型的
if(!type){
listeners.delete(elem);
}else{
const map = listeners.get(elem);
map.delete(type);
}
elem.removeEventListener(type,fnCenter);
}
// 注冊(cè)到j(luò)Query的原型上去
// 監(jiān)聽捕獲
$.fn.capture=function(type,callback){
// this is a jQuery Object
if(!this.length){
throw new Error("沒有有效的selector")
}
for(let i=0;i<this.length;i++){
const dom = this.get(i);
capture(dom,type,callback);
}
};
// 僅監(jiān)聽一次捕獲
$.fn.captureOnce=function(type,callback){
// this is a jQuery Object
if(!this.length){
throw new Error("沒有有效的selector")
}
for(let i=0;i<this.length;i++){
const dom = this.get(i);
capture(dom,type,callback,true);
}
};
// 解除監(jiān)聽
$.fn.removeCapture=function(type){
// this is a jQuery Object
if(!this.length){
throw new Error("沒有有效的selector")
}
for(let i=0;i<this.length;i++){
const dom = this.get(i);
remove(dom,type);
}
};
if(debug){
window.listeners = listeners;
}
})(true);
// 實(shí)驗(yàn)
$("#xx").capture("click",function(e){
alert("父");
});
$("#yy").capture("click",function(e){
alert("子");
});
</script>
</body>
</html>
效果如下
Component的實(shí)例方法selectComponent,可以通過它找到子組件實(shí)例,然后調(diào)用子組件的方法。例如:
<countdown id="countdown" />
onReady() {
this.countdown = this.selectComponent('#countdown');
this.countdown.start();
}你是想要獲取到所有的 children 下面的 id?
function funEach(data){
var arr = new Array(); // 準(zhǔn)備空數(shù)組存放
/* 第一層是索引數(shù)組 */
for(var i = 0;i < data.length;i++){
/* 該判斷通過,說明下面具有值 */
if(data[i]['children'][0] != undefined){
var l = data[i]['children'][0]; // 準(zhǔn)備個(gè)臨時(shí)變量
for(var iOne = 0;iOne < l.length;i++){
arr[] = l['id'];
}
}
}
return arr;
}
嗯,按我邏輯來想的話應(yīng)該是沒問題的。
在app.js中還沒有給globalData賦值時(shí)卻提前跳轉(zhuǎn)到了調(diào)用globalData數(shù)據(jù)的頁面,所以導(dǎo)致渲染失敗,試著做個(gè)引導(dǎo)或加載頁面,給數(shù)據(jù)一個(gè)緩沖的過程。
rem布局需要引入一個(gè)自調(diào)用函數(shù)(網(wǎng)易的做法)
(function(doc, win) {
var docEl = doc.documentElement,
isIOS = navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
dpr = isIOS ? Math.min(win.devicePixelRatio, 3) : 1,
dpr = window.top === window.self ? dpr : 1, //被iframe引用時(shí),禁止縮放
dpr = 1,
scale = 1 / dpr,
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize';
docEl.dataset.dpr = dpr;
var metaEl = doc.createElement('meta');
metaEl.name = 'viewport';
metaEl.content = 'initial-scale=' + scale + ',maximum-scale=' + scale + ', minimum-scale=' + scale;
docEl.firstElementChild.appendChild(metaEl);
var recalc = function() {
var width = docEl.clientWidth;
if (width / dpr > 750) {
width = 750 * dpr;
}
// 乘以100,px : rem = 100 : 1
docEl.style.fontSize = 100 * (width / 750) + 'px';
};
recalc()
if (!doc.addEventListener) return;
win.addEventListener(resizeEvt, recalc, false);
})(document, window);
處理后100px = 1rem;
to: object
An object that can have any of the following properties:
pathname: A string representing the path to link to.
search: A string represenation of query parameters.
hash: A hash to put in the URL, e.g. #a-hash.
state: State to persist to the location.
https://reacttraining.com/rea...
試試在mounted生命周期函數(shù)里面獲取。
字母數(shù)字是基線對(duì)齊,漢字是底線對(duì)齊,四線=》底線、基線、中間線、頂線,有點(diǎn)類似于四線三格。你可以對(duì)比一下英文'good'和中文’好‘。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。