Проверьте мои книги на Amazon в https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62
Подписаться на мой список адресов электронной почты сейчас в http://jauyeung.net/subscribe/
React – популярная библиотека для создания веб -приложений и мобильных приложений.
В этой статье мы рассмотрим несколько советов по написанию лучших приложений React.
Пропустить реквизит с компонентом перенаправления с помощью REACT Router
Мы можем передать реквизит с помощью React Router’s Перенаправление Компонент, проходя в Государство ценность.
Например, мы можем написать:
Мы проходим в пути по пути URL.
И Государство Имеет состояние, которое мы хотим передать в компонент.
И тогда мы можем написать:
this.props.location.state.id
Чтобы получить id в компоненте.
Различать события левого и щелчка правой кнопкой мыши с React
Мы можем различить левое и щелкнуть правой кнопкой мыши, проверив Тип Собственность событие объект.
Например, если у нас есть:
returnclick me
Тогда мы можем написать:
handleClick(e) {
if (e.type === 'click') {
console.log('Left click');
} else if (e.type === 'contextmenu') {
console.log('Right click');
}
}
Это обнаружение синтетического события.
Мы также можем обнаружить слева и щелкнуть правой кнопкой мыши с помощью NativeEvent :
handleClick(e) {
if (e.nativeEvent.which === 1) {
console.log('Left click');
} else if (e.nativeEvent.which === 3) {
console.log('Right click');
}
}
который Свойство имеет тип щелчка.
1 левый щелчок, а 3-правой кнопкой мыши.
Использование Jest to Spy на вызове метода в ComponentDidmount
Мы можем использовать Spyon Метод для проверки того, какой метод компонента вызывается.
Например, мы можем написать:
const spy = jest.spyOn(Component.prototype, 'someMethod'); const wrapper = mount(); wrapper.instance().someMethod(); expect(spy).toHaveBeenCalled();
Компонент это компонент, который мы тестируем.
Somemethod это метод, который мы шпионируем.
Мы установим компонент и получаем экземпляр с помощью экземпляр метод
Somemethod это метод, который мы вызвали.
Тогда шпион Следует вызвать.
А потом мы очищаем наши шпионы:
afterEach(() => {
spy.mockClear()
})
после каждого теста.
Как захватить только событие клика родителей, а не детей
Мы должны позвонить Предотвратить Чтобы захватить только событие клика родительского компонента, а не детское.
Например, мы можем написать:
onParentClick(event) {
event.preventDefault();
console.log(event.currentTarget);
}
Как отобразить от навыки от компонента React
Мы можем отобразить маркировку с библиотекой React-Markdown.
Например, мы можем написать:
import React from 'react' import Markdown from 'react-markdown' const code = "# header"; React.render(, document.getElementById('root') );
Мы получаем Markdown Компонент формирует пакет.
А потом мы проходим в код к Источник Опора, чтобы сделать это.
Кроме того, мы можем преобразовать его в HTML, а затем отображать, чем с DangerousSetInnerHtml с помечен библиотека.
Например, мы можем написать:
import React from 'react';
import marked from 'marked';
class Markdown extends React.Component {
constructor(props) {
super(props);
marked.setOptions({
gfm: true,
tables: true,
breaks: false,
pedantic: false,
sanitize: true,
smartLists: true,
smartypants: false
});
}
render() {
const { text } = this.props,
html = marked(text || '');
return (
);
}
}
Markdown.propTypes = {
text: React.PropTypes.string.isRequired
};
Markdown.defaultProps = {
text: ''
};
Мы устанавливаем параметры с Setoptions метод
GFM означает, что мы представляем ароматизированную маркировку GitHub.
Таблицы означает, что мы рендеринг столов.
перерывы Значит, мы рендеринг линии разрывы с Br.
педантичный означает, что мы соответствуем исходной спецификации Markdown и не исправляем их ошибки или поведение.
дезинфицировать Мы дезинфицируем HTML.
Умные списки использует поведение SmartList Spec.
Smartypants означает использование интеллектуальной типографской пунктуации для таких вещей, как цитаты и черты.
Тестирование с шутками с использованием объектов даты Производить разные снимки в разных часовых поясах
Мы можем установить текущее время для постоянного времени в шутку.
Например, мы можем написать:
Date.now = jest.fn(() => new Date(Date.UTC(2020, 7, 9, 8)).valueOf())
Тогда мы можем установить часовой пояс, когда мы запустим наши тесты.
В Mac и Linux мы добавляем:
"test": "TZ=America/Los_Angeles react-scripts test --env=jsdom",
И в окнах добавляем:
"test": "set TZ=America/Los_Angeles && react-scripts test --env=jsdom",
к Package.json S Сценарии раздел.
Вывод
Мы можем передать штаты Перенаправление составная часть.
Кроме того, мы можем установить часовой пояс для и даты для Jest Tests.
Мы также можем шпионить за вызовами функций с ними.
Мы также можем запечатлеть слева и щелкнуть правой кнопкой мыши и щелкнуть только из родительских элементов.
Существуют различные способы отображения в нашем компоненте React.
Пост Реактивные советы – тестирование, перенаправления и отметка появился первым на Веб -разработчик Анкет
Оригинал: “https://dev.to/aumayeung/react-tips-testing-redirects-and-markdown-4hcn”