The React Native market for quality React Native products, including full apps templates and starter kits.
- React Native Tutorial For Beginners – 2019. React-native native module for In App Purchase. This React Native component ImageEdit allows you to edit.
- While making an app we sometime need Full-Screen Background Image. Here is the Example of React Native Full Screen Background Image.
In this article I will tell you about how to create Markdown Editor with React.js and Web Storage
Purpose of this article is not to teach you React.js from scratch, I’m only just going to show you how to create a specific project using React.js and explain the code
If you want to know more about React.js and explore this technology, I recommend that you go through the following courses on Codecademy
In this project, we will use the following libraries and technologies: React.js, Babel, jQuery, Bootstap, Web Storage, Marked.js and Highlight.js
3) Marked.js — A markdown parser and compiler
4) Highlight.js — Syntax highlighting for the Web
5 Min Quickstart
Get started by creating a new folder for your project, and name it anything you like. Then, inside that folder, create additional folders and files to match the following structure
Start by creating a index.html file with the connected necessary libraries
js/index.babel in your favorite code editor (for example Sublime Text 3 or Atom) and create a new component that simply displays Hello World on page
Now, run your website on a web server. If you see Hello World on page, it means that you have done everything correctly
If you do not have installed MAMP or WAMP server, for this project you can use Node.js local-web-server package
Now we can get started
First we need to create a text box and markdown preview box where you can see the result of the work
To do this, replace the
render function in your component with
and add the following styles to your
Now when you run, your page will look like this Streets of rage arcade machine for sale.
The next step we define a initial default value that the user will see in a textarea. To do this, add
getInitialState function before
Now, every time you run the page, you’ll see the following text in a textarea
React Native Markdown Viewer
But you’ve probably noticed that in the
preview block nothing. Let’s fix it. Add
rawMarkup function immediately after
getInitialState that will parse the contents of the text box and output the result in
In this code snippet, I use the standard recommended settings specified in the project repository Marked.js here https://github.com/chjj/marked#usage
and added support syntax highlighting using highlight.js library
and the following code snippet
this.state.content as input, in this case, the contents of the
textarea as a result of the output we get the HTML that you will see in preview box
If you try to change the contents of the
textarea notice that your changes are not displayed in the preview box. To fix this, add the following
handleChange function after
handleChange is attached to the textarea
onChange event. The
handleChange function updates the components state with the new value of textarea. This causes the component to re-render with the new value
So when you change the markdown in the textarea field you will see changes in the preview
At this point, your code in
index.babel file should look like this
Using Web Storage
Suppose a user has written a large amount of text and reload the page by accident, reset computer or even any of the case for which the user did not have time or are not able to save the typed text. The user will probably be upset
What can we do in this case and how to prevent it?
We will keep all written user’s markdown to Local Storage and after each restart page, restarted browser or rebooting the PC, the user will see the text written by him
To do this, add the
componentWillMount function immediately after
./js/storage.js on our page within the script tag and execute it every time our component is rendered
Note that the path to
storage.js file must be specified relative to the file
Now include the jQuery adding to render
and add the following code in your
or without jQuery
In this code snippet, we check the user’s browser supports Local Storage (you can check the browser compatibility using the service Can I Use) and if Local Storage is support we add an event listener to the textarea. Every time the input event is fired on them, it means something has changed and we save textarea contents with all changes to Local Storage with
Finally, replace the initial default value
with add text from Local Storage
Now, if the user has in Local Storage
markdownStorage key, to the textarea will be inserted its contents. If
markdownStorage key not found or empty then user will see a default value
React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes.
Declarative views make your code more predictable and easier to debug.
Build encapsulated components that manage their own state, then compose them to make complex UIs.
Learn Once, Write Anywhere
We don’t make assumptions about the rest of your technology stack, so you can develop new features in React without rewriting existing code.
React can also render on the server using Node and power mobile apps using React Native.
A Simple Component
React components implement a
render() method that takes input data and returns what to display. This example uses an XML-like syntax called JSX. Input data that is passed into the component can be accessed by
Loading code example..
A Stateful Component
In addition to taking input data (accessed via
this.props), a component can maintain internal state data (accessed via
this.state). When a component’s state data changes, the rendered markup will be updated by re-invoking
Loading code example..
state, we can put together a small Todo application. This example uses
state to track the current list of items as well as the text that the user has entered. Although event handlers appear to be rendered inline, they will be collected and implemented using event delegation.
Loading code example..
A Component Using External Plugins
React allows you to interface with other libraries and frameworks. This example uses remarkable, an external Markdown library, to convert the
<textarea>’s value in real time.