const data
, чтобы мой мемоизированный компонент ререндерился при каждом ререндере родителя?useMemo
и этот момент меня удивил, что передавая data
, мой компонент не ререндеритсяfunction foo()
и const data
, что в случае с функцией, компонент ререндерится, а в случае с переменной, нет.useMemo
и обычного const data
[Symbol.iterator] = () => this.store[Symbol.iterator]()
[Symbol.iterator]()
?[Symbol.iterator] = () => {...}
crontab -e
указываю, что скрипт должен срабатывать каждый день в 2 часа ночи0 2 * * * /home/apps/project/cron.sh
cron.sh
пишу#!/bin/bash
docker compose down --volumes/home/apps/project/docker-compose.yml && docker-compose /home/apps/project/docker-compose.yml up -d;
sh
файл уже лежит в корне проекта, где и docker-compose
, то там же и выполнит все команды #!/bin/bash
echo "сегодня " `date`
#!/bin/bash
docker compose down --volumes
docker compose up
docker compose down --volumes
docker compose up
system-timer
, что с ним не так? )interface ICountBtn {
setNum: () => void;
num: number;
}
type TCountBtn = (props: {
setNum: () => void,
num: number
}) => React.ReactElement
function CountBtn({ setNum, num }: ICountBtn ) {
return(
<div>
<p>{num}</p>
<button onClick={() => setNum()}>
Click
</button>
</div>
)
}
const CountBtn = memo(
function CountBtn({ foo, footer }: ICountBtn ) {
console.log('render')
return(
<div>
<p>{footer}</p>
<button onClick={() => foo()}>
Click
</button>
</div>
)
})
const CountBtn: TCountBtn = ({ setNum, num }) => {
return(
<div>
<p>{num}</p>
<button onClick={() => setNum()}>
Click
</button>
</div>
)
}
const CountBtn2 = memo(CountBtn)
ssl_certificate /etc/nginx/ssl/live/dev.ru/fullchain.pem;
sl_certificate_key /etc/nginx/ssl/live/dev.ru/privkey.pem;
listen [::]:80;
listen 80;
location / {
return 301 https://$host$request_uri;
}
listen [::]:443 ssl;
listen 443 ssl;
location / {
proxy_pass http://client/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /api/ {
proxy_pass http://server/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
/.well-known/acme-challenge
нужен только для 80 порта исключительно для инициализации сертификата и в 443 он не нужен?location /.well-known/acme-challenge {
allow all;
root /var/www/certbot/;
}
/api/v1/users/1/posts
/api/v1/users/1/todos
posts
и todos
?DRY
table
`SELECT * FROM ${table}`
, как нам безопасно вставить название таблицы? [
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
},
{
"userId": 1,
"id": 2,
"title": "qui est esse",
},
]
sudo apt-get install -y postgresql-plpython3-15
CREATE EXTENSION plpython3u
Как я понял, его надо слать через строку
В консоли выводится текст
console.log('получено сообщение ' + message)
Но почему-то на клиенте получается такая история
Почему у меня mid передался нормально, как и есть, а текст сообщения в итоге стал буфером
Как правильно передать данные?