SPA - When to use Location Based or Internal State?









up vote
0
down vote

favorite












Hopefully this is not too opinionated but I am wondering if there are best practices regarding location-based SPAs and Internal based SPAs.



Internal based SPAs - track state internally
Location-based SPAs - URL location / Sessions , etc


In one part of my site if a user pastes in the url the search results will show.



However if I should be doing it for areas like admin section.



For instance I am allow users to add inventory to this point



admin -> add new Inventory -> choose center -> choose subcategory -> add inventory.



This is pretty much the flow, however if I would make it location based then on the "add inventory page" I would have to set the



  • company

  • center

  • subcategory

Which would require ajax requests to get all the data and basically every page I would have to do setting up data. It just seems like alot of work that every page has to be fully setup if they are coming from a url.



I am already using stuff like react-router to do my routing but in the end of the day I would to make sure that everything is always setup to the page can basically run standalone.



So maybe in some situations it would be better to somehow just redirect users back to the root of everything instead?










share|improve this question

























    up vote
    0
    down vote

    favorite












    Hopefully this is not too opinionated but I am wondering if there are best practices regarding location-based SPAs and Internal based SPAs.



    Internal based SPAs - track state internally
    Location-based SPAs - URL location / Sessions , etc


    In one part of my site if a user pastes in the url the search results will show.



    However if I should be doing it for areas like admin section.



    For instance I am allow users to add inventory to this point



    admin -> add new Inventory -> choose center -> choose subcategory -> add inventory.



    This is pretty much the flow, however if I would make it location based then on the "add inventory page" I would have to set the



    • company

    • center

    • subcategory

    Which would require ajax requests to get all the data and basically every page I would have to do setting up data. It just seems like alot of work that every page has to be fully setup if they are coming from a url.



    I am already using stuff like react-router to do my routing but in the end of the day I would to make sure that everything is always setup to the page can basically run standalone.



    So maybe in some situations it would be better to somehow just redirect users back to the root of everything instead?










    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      Hopefully this is not too opinionated but I am wondering if there are best practices regarding location-based SPAs and Internal based SPAs.



      Internal based SPAs - track state internally
      Location-based SPAs - URL location / Sessions , etc


      In one part of my site if a user pastes in the url the search results will show.



      However if I should be doing it for areas like admin section.



      For instance I am allow users to add inventory to this point



      admin -> add new Inventory -> choose center -> choose subcategory -> add inventory.



      This is pretty much the flow, however if I would make it location based then on the "add inventory page" I would have to set the



      • company

      • center

      • subcategory

      Which would require ajax requests to get all the data and basically every page I would have to do setting up data. It just seems like alot of work that every page has to be fully setup if they are coming from a url.



      I am already using stuff like react-router to do my routing but in the end of the day I would to make sure that everything is always setup to the page can basically run standalone.



      So maybe in some situations it would be better to somehow just redirect users back to the root of everything instead?










      share|improve this question













      Hopefully this is not too opinionated but I am wondering if there are best practices regarding location-based SPAs and Internal based SPAs.



      Internal based SPAs - track state internally
      Location-based SPAs - URL location / Sessions , etc


      In one part of my site if a user pastes in the url the search results will show.



      However if I should be doing it for areas like admin section.



      For instance I am allow users to add inventory to this point



      admin -> add new Inventory -> choose center -> choose subcategory -> add inventory.



      This is pretty much the flow, however if I would make it location based then on the "add inventory page" I would have to set the



      • company

      • center

      • subcategory

      Which would require ajax requests to get all the data and basically every page I would have to do setting up data. It just seems like alot of work that every page has to be fully setup if they are coming from a url.



      I am already using stuff like react-router to do my routing but in the end of the day I would to make sure that everything is always setup to the page can basically run standalone.



      So maybe in some situations it would be better to somehow just redirect users back to the root of everything instead?







      reactjs single-page-application






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 10 at 0:44









      chobo2

      30k151398676




      30k151398676






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          I would recommend using React Context for resolving your problem.



          Once authorized, you can set the Provider value to be the user or their permissions, then on each ComponentDidMount or render() or whatever lifecycle hook you choose, you can check the users permissions and then allow the functionalities based on that.



          Context values persist throughout routing, so you won't have to worry about updating it all the time (although you probably should if your user has a timed session).



          So it is fully possible and probably more effective to use a mix of both internal and location based state management.






          share|improve this answer




















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













             

            draft saved


            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53235024%2fspa-when-to-use-location-based-or-internal-state%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            I would recommend using React Context for resolving your problem.



            Once authorized, you can set the Provider value to be the user or their permissions, then on each ComponentDidMount or render() or whatever lifecycle hook you choose, you can check the users permissions and then allow the functionalities based on that.



            Context values persist throughout routing, so you won't have to worry about updating it all the time (although you probably should if your user has a timed session).



            So it is fully possible and probably more effective to use a mix of both internal and location based state management.






            share|improve this answer
























              up vote
              0
              down vote













              I would recommend using React Context for resolving your problem.



              Once authorized, you can set the Provider value to be the user or their permissions, then on each ComponentDidMount or render() or whatever lifecycle hook you choose, you can check the users permissions and then allow the functionalities based on that.



              Context values persist throughout routing, so you won't have to worry about updating it all the time (although you probably should if your user has a timed session).



              So it is fully possible and probably more effective to use a mix of both internal and location based state management.






              share|improve this answer






















                up vote
                0
                down vote










                up vote
                0
                down vote









                I would recommend using React Context for resolving your problem.



                Once authorized, you can set the Provider value to be the user or their permissions, then on each ComponentDidMount or render() or whatever lifecycle hook you choose, you can check the users permissions and then allow the functionalities based on that.



                Context values persist throughout routing, so you won't have to worry about updating it all the time (although you probably should if your user has a timed session).



                So it is fully possible and probably more effective to use a mix of both internal and location based state management.






                share|improve this answer












                I would recommend using React Context for resolving your problem.



                Once authorized, you can set the Provider value to be the user or their permissions, then on each ComponentDidMount or render() or whatever lifecycle hook you choose, you can check the users permissions and then allow the functionalities based on that.



                Context values persist throughout routing, so you won't have to worry about updating it all the time (although you probably should if your user has a timed session).



                So it is fully possible and probably more effective to use a mix of both internal and location based state management.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 10 at 1:11









                izb

                40519




                40519



























                     

                    draft saved


                    draft discarded















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53235024%2fspa-when-to-use-location-based-or-internal-state%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

                    Syphilis

                    Darth Vader #20