官术网_书友最值得收藏!

Adding an entrypoint

React applications are composed of a hierarchy of components that are rendered at the root. Our application entrypoint should render this root component.

I tend to not test-drive my entrypoint, because any test that loads our entire application can become quite brittle as we add in more and more dependencies into it. In Section 4, Acceptance Testing with BDD, we'll look at using acceptance tests to write some tests that will cover the entrypoint.

Since we aren't test-driving it, we follow a couple of general rules:

  • Keep it as brief as possible

  • Only use it to instantiate dependencies for your root component, and to call ReactDOM.render.

Before we run our app, we'll need some sample data. Create a file named src/sampleData.js and fill it with the following:

const today = new Date();

const at = hours => today.setHours(hours, 0);

export const sampleAppointments = [
{ startsAt: at(9), customer: { firstName: 'Charlie' } },
{ startsAt: at(10), customer: { firstName: 'Frankie' } },
{ startsAt: at(11), customer: { firstName: 'Casey' } },
{ startsAt: at(12), customer: { firstName: 'Ashley' } },
{ startsAt: at(13), customer: { firstName: 'Jordan' } },
{ startsAt: at(14), customer: { firstName: 'Jay' } },
{ startsAt: at(15), customer: { firstName: 'Alex' } },
{ startsAt: at(16), customer: { firstName: 'Jules' } },
{ startsAt: at(17), customer: { firstName: 'Stevie' } }
];
The GitHub repository contains a more complete set of sample data. You can use this by pulling the same file, src/sampleData.js, from the tag extracting-helpers.

This list also doesn't need to be test-driven, for a couple of reasons:

  • It's a list of static data with no behavior.
  • This module will be removed once we begin using our back-end API to pull data.
Test-driven development is often a pragmatic choice. Sometimes, not test-driving is the right thing to do.

Create a new file src/index.js and enter the following:

import React from 'react';
import ReactDOM from 'react-dom';
import { AppointmentsDayView } from './Appointment';
import { sampleAppointments } from './sampleData';

ReactDOM.render(
<AppointmentsDayView appointments={sampleAppointments} />,
document.getElementById('root')
);

That's all you'll need.

主站蜘蛛池模板: 科尔| 漾濞| 印江| 博兴县| 新野县| 雅江县| 历史| 社会| 清涧县| 伽师县| 葵青区| 丘北县| 康马县| 宜黄县| 北安市| 沙河市| 平罗县| 雅安市| 南平市| 台南市| 建始县| 潼关县| 洛隆县| 桐柏县| 游戏| 南昌市| 都安| 宁海县| 长宁县| 嫩江县| 新郑市| 西昌市| 阳高县| 桐城市| 镇雄县| 海原县| 大港区| 平乐县| 白朗县| 清镇市| 江川县|