powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Ищу фреймворк - JavaScript-фасад над HTML
10 сообщений из 10, страница 1 из 1
Ищу фреймворк - JavaScript-фасад над HTML
    #39916713
pbda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Экспериментирую с одним проектом, который должен хорошо дружить с SEO и индексироваться, поэтому React/Helmet/Prerender решено не использовать и сделать всё на старом добром MVC/Ajax.
В то же время хочется получить компактность React при работе с логическими компонентами форм. Например, есть грид, в каждой строке которого есть div, в этом div-e текстбокс и три кнопки - при нажатии на первую текст тексбокса, например, приводится к верхнему регистру, при нажатии на вторую - к нижнему, третья формирует POST-запрос и отправляет значение текстового поля на сервер. Для получения нужной функциональности на чистом javascript нужно навесить на все элементы уникальные идентификаторы или data-атрибуты, и далее манипулировать данными через DOM, но это мучительно.
И вот я хотел узнать, не придумали ли уже такой фреймворк, который позволяет на JS где-то в стороне объявить класс с состоянием и привязать его к уже существующему DOM?

Например (псевдокод):

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<ul class="list-group" id="dataGrid">
  <li class="list-group-item" id="dataGridRow1" prototype="GridRow">
    <input data-id="txtValue" type="text" />
    <button data-id="cmdUpperCase">To uppercase</button>
    <button data-id="cmdLowerCase">To lowercase</button>
    <button data-id="cmdSave">Save</button>
  </li>
  <li class="list-group-item" id="dataGridRow2" prototype="GridRow">
    <input data-id="txtValue" type="text" />
    <button data-id="cmdUpperCase">To uppercase</button>
    <button data-id="cmdLowerCase">To lowercase</button>
    <button data-id="cmdSave">Save</button>
  </li>
</ul>



...

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<script>
class GridRow {
    constructor() {
       this.state = {
          value: this.select("input[data-id='txtValue']").value
       }
    }
    
    function cmdUpperCaseClick() {
       this.setState({value: value.toUpperCase()});
    }

    function cmdLowerCaseClick() {
       this.setState({ value: value.toLowerCase() });
    }
    
    function cmdSaveClick() {
       ajaxSave(this.state);
    }
}
</script>
...
Рейтинг: 0 / 0
Ищу фреймворк - JavaScript-фасад над HTML
    #39916750
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pbda,

jsники что-то делали для серверсайд рендера прямо из этих своих реактов. Поковыряй глубже эту тему.
https://alligator.io/react/server-side-rendering/
https://habr.com/ru/post/473210/
...
Рейтинг: 0 / 0
Ищу фреймворк - JavaScript-фасад над HTML
    #39916762
pbda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серверный не канает (
Нашел примерно то, что мне нужно - https://www.wintellect.com/data-binding-pure-javascript/, но оно далеко от законченности
...
Рейтинг: 0 / 0
Ищу фреймворк - JavaScript-фасад над HTML
    #39916831
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pbdaне придумали ли уже такой фреймворк, который позволяет на JS где-то в стороне объявить класс с состоянием и привязать его к уже существующему DOM?Попробуйте Vue JS . Он умеет тоже самое, что и Реакт, но проще в освоении.
Его можно подключить и через тег <script> , легко интегрируется с существующим приложением, ни с чем не конфликтует.
...
Рейтинг: 0 / 0
Ищу фреймворк - JavaScript-фасад над HTML
    #39916855
pbda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, могу ошибаться, но по-моему то что мне нужно - это называется databinding, и больше всего на это похож knockout.js
...
Рейтинг: 0 / 0
Ищу фреймворк - JavaScript-фасад над HTML
    #39916865
pbda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLPowerUser,

В принципе и реакт тоже легко подключается через <script>, вместе с бабелем через script type="text/babel" или через babel cli
...
Рейтинг: 0 / 0
Ищу фреймворк - JavaScript-фасад над HTML
    #39916879
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pbda,

..а что вы проиндексируете со страницы на knockout.js, если там что-то типа:

Код: html
1.
2.
3.
4.
5.
6.
7.
<tbody data-bind="foreach: filteredMats">
<tr data-bind="css: { 'odd': ($index() % 2 == 0) }">
<td>
<div id="celllabel1" class="small">
<span data-bind="text: tmc"></span>
</div>
</td>
...
Рейтинг: 0 / 0
Ищу фреймворк - JavaScript-фасад над HTML
    #39916881
pbda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotik,

мне нужен датабиндинг к каждой строке карточки в card deck или в table, там есть что индексировать. Биндинг к коллекциям мне не нужен, коллекции пусть рендерятся на сервере
...
Рейтинг: 0 / 0
Ищу фреймворк - JavaScript-фасад над HTML
    #39916882
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pbda,

..ну, если с карточками, то, как уже выше сказали, с ними хорошо работает связка Vue.js + Vuetify (там еще и Material Design из коробки) ...
...
Рейтинг: 0 / 0
Ищу фреймворк - JavaScript-фасад над HTML
    #39916885
pbda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotik, кстати да ) посмотрел, тоже подойдёт
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Ищу фреймворк - JavaScript-фасад над HTML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]