title: LazyVStack Initializes all views when one changes SwiftUI
body: <p>I have a <code>LazyVStack</code> which I would like to only update one view and not have all others on screen reload.  With more complex cells this causes a big performance hit.  I have included sample code</p>
  <pre><code>import SwiftUI
  
  struct ContentView: View {
      @State var items = [String]()
      var body: some View {
          ScrollView {
              LazyVStack {
                  ForEach(self.items, id: \.self) { item in
                      Button {
                          if let index = self.items.firstIndex(where: {$0 == item}) {
                              self.items[index] = &quot;changed \(index)&quot;
                          }
                      } label: {
                          cell(text: item)
                      }
                  }
              }
          }
          .onAppear {
              for _ in 0...200 {
                  self.items.append(NSUUID().uuidString)
              }
          }
      }
  }
  struct cell: View {
      let text: String
      init(text: String) {
          self.text = text
          print(&quot;init cell&quot;, text)
      }
      var body: some View {
          Text(text)
      }
  }
  struct ContentView_Previews: PreviewProvider {
      static var previews: some View {
          ContentView()
      }
  }
  </code></pre>
  <p>As you can see even when only changing 1 cell the init gets called for every cell.  Is there anyway to avoid this?</p>