--proxy
browser-sync start --proxy mylocal.dev
[BS] Proxying: http://local.dev.domain
[BS] Access URLs:
------------------------------------
Local: http://localhost:3002
External: http://192.168.1.6:3002
------------------------------------
UI: http://localhost:3003
UI External: http://192.168.1.6:3003
------------------------------------
http://192.168.1.6:3002
, вбиваете его на телефоне и смотрите (естественно телефон должен быть подключен к той же сети, куда подключен и ПК).src
. Типа сплошной серый фон (не картинка, а CSS'ом например).data-src
в нем храните оригинальное изображение. Оно не будет подгружаться.window.onload
проверяете, что страница загрузилась.data-src
оригинал и вставляем в src
const User = ({ firebase }) => {
const [authUser, setAuthUser] = useEffect(null);
useEffect(() => {}, [
// код который в componentDidMount
firebase.auth.onAuthStateChanged(authUser => {
setAuthUser(authUser);
});
return () => { // код который в componentWillUnmount
// хз зачем тебе обращаться еще раз к API, можешь даже не писать этот return, но если надо, то делай необходимые вещи перед уничтожением компонента
setAuthUser(null);
};
], []); // если массив пустой, то хук сработает один раз при монтировании компонента. Если массив не передавать, хук сработает при каждом рендере кмпонента. Если передать аргументы, то сработает при их изменении.
};
var scrollPos = 0;
$(window).scroll(function(){
var st = $(this).scrollTop();
if (st > scrollPos){
$('#result').html('Вниз');
} else {
$('#result').html('Вверх');
}
scrollPos = st;
});
<Link to={{
pathname: "/search",
propsSearch: myData
}}>Ссылка</ Link>
import React from 'react';
import {Redirect} from 'react-router-dom';
export default function Search(props) {
console.log(props.location.propsSearch); // Наши переданные данные
//Но учтите, что они будут доступны только, при переходе по этой ссылке.
//Если страницу перезагрузить, то получим - undefined.
//Это решается редиректом обратно, если нет пропса:
if (!props.location.propsSearch) return <Redirect to="/firstpage" />;
...
}
window.addEventListener('load', starter); // Ждем полной загрузки стр. и запускаем функцию starter()
function starter() {
// Произвольный код
}
document.addEventListener('DOMContentLoaded', starter); // Ждем готовности дерева элементов и запускаем starter()
function starter() {
// Произвольный код
}
const newArr = arr.map((n, i) => n.repeat(i + 1));
const newArr = arr.map((n, i) => Array(i + 1).fill(n).join(''));
const newArr = arr.map((n, i) => Array(i + 2).join(n));
const newArr = [];
for (let i = 0; i < arr.length; i++) {
let str = '';
for (let j = 0; j <= i; j++) {
str += arr[i];
}
newArr.push(str);
}
const newArr = [];
for (const n of arr) {
let str = '';
while ((str = str.concat(n)).length <= newArr.length) ;
newArr[newArr.length] = str;
}