• Как в next js добавить класс к элементу?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как в обычном реакте:
    const Icon = ({title, href, active}) => {
        const className = active ? 'active' : '';
    
        return (
            <Link href={href} className={`svgh m-auto ${className}`}>
                {/* svg */}
            </Link>
        );
    }

    'use client'
    import React, {useState, useEffect} from 'react';
    import Icon from './icons/Icon';
    
    const links = [
        {href: '#home_anchor', svgIcon: 'home'},
        {href: '#user_anchor', svgIcon: 'user'}
        // others
    ];
    
    const Navbar = () => {
        const [activeLink, setActiveLink] = useState('');
    
        useEffect(() => {
            const handleScroll = () => {
                // logic scroll
            }
    
            // add anchor
            window.addEventListener('scroll', handleScroll);
    
            // remove anchor from unmount
            return () => window.removeEventListener('scroll', handleScroll)
    
        }, []);
    
        return (
            <nav className="flex flex-col fixed bg-gray-800 align-center">
                {links.map((l) => (
                    <Icon href={l.href} key={l.svgIcon} title={l.svgIcon} active={activeLink === l.href}/>
                ))}
            </nav>
        );
    }
    Ответ написан
    1 комментарий
  • Как в next js добавить класс к элементу?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега React
    Примерно так:
    {navLinks.map((link) => (
        <Icon href={link.href} key={link.svgIcon} title={link.svgIcon} className={isCurrent ? `active` : undefined} />
    ))}
    
    ...
    import classNames, { type Argument } from "classnames";
    
    type Props = {
        title: string;
        href: string;
        className: Argument;
    }
    
    <Link href={props.href} className={classNames('svgh m-auto', props.className)>
        <SvgMail width="30" height="30" viewBox="0 0 50 50" />
    </Link>
    https://www.npmjs.com/package/classnames
    Ответ написан
    1 комментарий
  • Отображается ошибка в коде TypeScript Next js, хотя ошибки нет. Как исправить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    TS - он про типы.
    Вы создаёте функцию, которая принимает на вход тип HTMLButtonElement, а использовать её пытаетесь как обработчик события click, который передаёт параметр с типом MouseEvent.
    Ответ написан
    1 комментарий
  • Как правильно изучать / конспектировать книги по программированию?

    @McBernar
    Выписываю основной синтаксис и базовые мысли при изучении новой технологии. Так потом удобно при разработке первого проекта искать нужное, а не лезть в книгу/видео снова.
    Ответ написан
    Комментировать
  • Как правильно изучать / конспектировать книги по программированию?

    Здравствуйте.

    Вот недавно осваивал Python по книжке, писал небольшие фрагменты кода на заданную тему (ну как в книгах: отдельно функции, отдельно ООП, отдельно обработка исключений...) и сохранял их, чтобы потом использовать как пример. Там, в файлах, сохранял как примитивные вещи, так и языковые приемы. Все снабжал комментариями. Получился вот такой набор:

    5c44695bbd6ef561041011.png

    Сейчас пишу небольшой клиент на Python -- метод работает. Периодически заглядываю в эти файлы, если что-то забуду.
    Ответ написан
    Комментировать
  • Как правильно изучать / конспектировать книги по программированию?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Не записываю. Просто читаю, попутно экспериментирую с примерами из книги. После прочтения пытаются набомбить пет-проект с использованием изученных технологий. Если где-то застреваю, перечитываю соответствующие главы, лезу в официальную документацию, гуглю.
    Ответ написан
    Комментировать
  • Как правильно изучать / конспектировать книги по программированию?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Я применяю интервальное повторение при изучении чего угодно. Для этого есть крутая программа - Anki, забиваете карточки, и повторяете каждый день. Это не зубрежка, это просто повторение.
    Читаю абзац, выделяю с него основную суть в виде вопроса, и ответа. Например абзац из Лутца
    Теоретически классы (и экземпляры классов) относятся к категории
    изменяемых объектов. Подобно таким встроенным типам, как списки
    и словари, они могут изменяться непосредственно, путем присваива
    ния значений атрибутам и, как и в случае со списками и словарями,
    это означает, что изменение класса или экземпляра может оказывать
    влияние на множественные ссылки на них

    Основная суть, которую нужно запомнить, это то, что классы относятся к категории изменяемых объектов. Тут конечно же, уже сначала нужно знать, что такое изменяемые объекты.
    Для этого абзаца создаю карточку в анки, в вопрос забиваю следующее

    Относятся ли классы и и экземпляры классов, к категории изменяемых объектов?


    ответ

    да (сюда можно добавить - почему, или же дополнительную памятку типа - да, также как и встроенные типы, списки и словари).


    И так каждый раз, когда встречаете неизвестную (или плохо известную) вам информацию.
    И каждый день, вы должны открывать Анки, и повторять все карточки. Занимает около 10-15 минут, я делаю это в метро, раньше делал строго после обеда (когда есть строгое время или точка события, легче не пропускать).
    Повторю, это не зубрежка, и многие скажут "достаточно понять, и оно само запомнится", но если не использовать эту информацию, она может забыться, а анки будет всегда симулировать это "использование", и информация не забывается. Плюсом тренируете память.

    Также раньше применял Mind map для конспектирования, но это сложная тема, к которой я пока привыкнуть не смог, поэтому больше не применяю.
    Ответ написан
    Комментировать
  • Как правильно изучать / конспектировать книги по программированию?

    Katawara
    @Katawara
    Лично я делаю так: изучаю главу, практикую, делаю простые записи, чтобы не забыть самое важное. Вот например сегодня я начала изучать ООП и классы на пайтоне. В итоге, записей у меня, по сути, один лист, на котором: объявление классов (родительские - дочерние) в двух словах, конструктор класса и аргумент self также в паре слов, и немного про наследование, полиморфизм и инкапсуляцию. Все остальное - практика, практика и практика.

    PS. Лично я пищу конспекты очень кратко, и только для того, чтобы не ища в гугле нужную информацию быстро вспомнить то, что забылось, поэтому мне описанный выше подход более чем подходит.
    Ответ написан
    Комментировать
  • Как правильно изучать / конспектировать книги по программированию?

    @CasperIsNotAGoodGhost
    Не трать время на конспектирование. В обучении главное это понимание и практика.
    Ответ написан
    Комментировать
  • Как правильно изучать / конспектировать книги по программированию?

    longclaps
    @longclaps
    Лучше всего делать это в первой половине дня - когда голова лучше варит.
    Садишься, читаешь и все замеченые ошибки/глупости аккуратно заносишь в общую тетрадь на 96 листов.
    Когда она будет полностью заполнена - считай, ты постиг программирование.
    Ответ написан
    2 комментария