block by curran 76a970616923968b4d7cf9a5ab07cb5e

Render Function Concept

Full Screen

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>Shopping App Prototype</title>
    <script src="https://d3js.org/d3.v4.min.js"></script>
  </head>
  <body>
    <svg width="500" height="960"></svg>
    <script>
      const textValue = d => `${d.name} $${d.price}`
      const verticalSpacing = 45;

      function render(selection, data){
        selection.selectAll('text').data(data)
            .text(textValue)
          .enter().append('text')
            .style('font-size', '32pt')
            .style('font-family', 'Sans-Serif')
            .attr('x', 250)
            .attr('y', (d, i) => 50 + verticalSpacing * i)
            .text(textValue);
      }

      const svg = d3.select('svg');
      render(svg, [
        { name: 'Milk', price: 3 }
      ]);

      setTimeout(() => {
        render(svg, [
          { name: 'Milk', price: 3 },
          { name: 'Eggs', price: 20 }
        ]);
      }, 1000);

      setTimeout(() => {
        render(svg, [
          { name: 'Milk', price: 3 },
          { name: 'Eggs', price: 2 }
        ]);
      }, 2000);


    </script>
  </body>
</html>