The Cookbook gives developers examples to work off of that both cover common or interesting use cases, and also progressively explain more complex detail. Our goal is to move beyond a simple introductory example, and demonstrate concepts that are more widely applicable, as well as some caveats to the approach.
If you’re interested in contributing, please initiate collaboration by filing an issue under the tag cookbook idea with your concept so that we can help guide you to a successful pull request. After your idea has been approved, please follow the template below as much as possible. Some sections are required, and some are optional. Following the numerical order is strongly suggested, but not required.
- Articulate the problem in a sentence or two.
- Explain the simplest possible solution in a sentence or two.
- Show a small code sample.
- Explain what this accomplishes in a sentence.
- Address common questions that one might have while looking at the example. (Blockquotes are great for this)
- Show examples of common missteps and how they can be avoided.
- Show very simple code samples of good and bad patterns.
- Discuss why this may be a compelling pattern. Links for reference are not required but encouraged.
Demonstrate the code that would power a common or interesting use case, either by:
- Walking through a few terse examples of setup, or
- Embedding a codepen/jsfiddle example
If you choose to do the latter, you should still talk through what it is and does.
It’s extremely helpful to write a bit about this pattern, where else it would apply, why it works well, and run through a bit of code as you do so or give people further reading materials here.
This section is not required, but heavily recommended. It won’t make sense to write it for something very simple such as toggling classes based on state change, but for more advanced patterns like mixins it’s vital. The answer to most questions about development is “It depends!”, this section embraces that. Here, we’ll take an honest look at when the pattern is useful and when it should be avoided, or when something else makes more sense.
optional, except when the section above is provided
This section is required when you’ve provided the section above about avoidance. It’s important to explore other methods so that people told that something is an antipattern in certain situations are not left wondering. In doing so, consider that the web is a big tent and that many people have different codebase structures and are solving different goals. Is the app large or small? Are they integrating Vue into an existing project, or are they building from scratch? Are their users only trying to achieve one goal or many? Is there a lot of asynchronous data? All of these concerns will impact alternative implementations. A good cookbook recipe gives developers this context.
It takes time to contribute to documentation, and if you spend the time to submit a PR this section of our docs, you do so with our gratitude.