Определитесь где вы хотите хранить данные. Если заметки нужны только на одном устройстве — тогда можно хранить на клиенте. Иначе — на сервере.
Если данные будут храниться на клиенте — тогда тут всё просто:
По событию
oninput
сохраняете заметку в localStorage или в любом другом хранилище (благо браузеры дают выбор)
Если данные нужно отправлять на сервер то тут всё сложнее
Вам стоит применить
фоновую синхранизацию. Если коротко: данные для сохраниния будут храниться локально на клиетне до тех пор, пока не будут сохранены на сервере. Если клиент в метро, в тоннеле, или ещё где-то где нет интернета, он по прежнему может написать заметку. А когда соединение с сервером будет восстановлено — заметка сохранится глобально и будет доступна на других устройствах.
Если вы хотите пойти по более простому пути тогда так:
По событию
oninput
запускаете функцию сохранения данных на сервер. А чтобы не перенагружать сервер применяйте функцию типа
lodash.debounce:
Если текст не печатают пол секунды — отправить на сервер