Форум программистов, компьютерный форум, киберфорум
JavaScript: ReactJS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
8 / 8 / 2
Регистрация: 31.01.2014
Сообщений: 464
1

Можно ли сделать контроллер на манер фреймворков?

15.01.2019, 20:06. Показов 1308. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Можно ли сделать контроллер на манер фреймворков(laravel,yii2)?
Просто пока кажется, что придётся все урл на компоненты завязывать.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const AppRouter = () => (
    <Router>
      <div>
        <nav>
          <ul>
            <li>
              <Link to="/">Home1188</Link>
            </li>
            <li>
 
            </li>
            <li>
              <Link to="/users/">Users</Link>
            </li>
          </ul>
        </nav>
 
 
 [B]       <Route path="/users/" component={UsersPage} />
        <Route path="/users/create" component={Users} /> //как сделать этот адрес get
        <Route path="/users/create" component={Users} /> //а этот post? что бы к нему обращаться из формы с UsersPage[/B]
        //и можно ли как-то собрать все эти адреса в один контроллер? потому что в приложении будет много пдобных crud
      </div>
    </Router>
);
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2019, 20:06
Ответы с готовыми решениями:

Можно ли назначать значения Input.Axis? Если нет, то как можно сделать контроллер для андроид, используя две кнопки?
Можно ли назначать значения Input.Axis? Если нет, то как можно сделать контроллер для андроид,...

Можно ли в одном проекте использовать несколько фреймворков
Можно ли, чтобы часть проекта работала на одном фреймворке, а другая часть - на другом? Извиняюсь...

Можно ли при создании сайта с нуля обойтись без фреймворков
Можно ли при создании сайта с нуля обойтись без фреймворков , и зачем они нужны?

Как можно расшифровать формат avi и как его потом воспроизвести без каких-либо фреймворков
Где найти, где почитать, то как можно расшифровать формат avi и как его потом воспроизвести без...

12
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
16.01.2019, 14:08 2
тут подход другой, и так сделать не получится

Цитата Сообщение от Gvizl Посмотреть сообщение
//как сделать этот адрес get
в самом компоненте роута, в componentDidMount сделать ajax запрос...

Цитата Сообщение от Gvizl Посмотреть сообщение
//а этот post? что бы к нему обращаться из формы с UsersPage
делать post через ajax

Цитата Сообщение от Gvizl Посмотреть сообщение
//и можно ли как-то собрать все эти адреса в один контроллер?
ага, написать общий компонент, в который в кач-ве props получает необходимые данные
0
8 / 8 / 2
Регистрация: 31.01.2014
Сообщений: 464
16.01.2019, 19:31  [ТС] 3
Попробовал сделать маршрутизацию внутри компонента, но после перехода по ссылке родителя дочерний компонент неподгружается.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import React from "react";
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
import HelloMessage from './components/HelloMessage';
 
const Users = () => <h2>Users</h2>;
 
const AppRouter = () => (
    <Router>
      <div>
        <nav>
          <ul>
              <li>
                  <Link to="/">Index</Link>
              </li>
            <li>
              <Link to="/posts">HelloMessage</Link>
            </li>
 
            <li>
              <Link to="/users/">Users</Link>
            </li>
 
          </ul>
        </nav>
 
 
        <Route exact path="/posts" component={HelloMessage} />
        <Route path="/users/" component={Users} />
 
      </div>
    </Router>
);
 
export default AppRouter;
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import React, { Component } from 'react';
import { BrowserRouter as Route, Link, Switch } from "react-router-dom";
import HelloMessage2 from './HelloMessage2';
 
const About = () => <h2>About</h2>;
 
 
 
export default class HelloMessage extends Component {
    render() {
        return (
            <div>
              <p>Welcome to Create Component!!</p>
 
                <Link to="/posts/about/">HelloMessage2</Link>
 
 
                <Route path="/posts/about/" component={HelloMessage2} />
 
 
            </div>
        )
    }
}
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
import React, { Component } from 'react';
 
 
export default class HelloMessage2 extends Component {
    render() {
        return (
            <div>
              <p>Welcome to Create Component3!!</p>
 
            </div>
        )
    }
}
Добавлено через 2 часа 19 минут
Неужели нет способа как-то импортировать роуты из подгружаемых компонентов? В AppRouter не очень удобно всё это прописывать - кучу crмаршрутов по каждой модели.

Добавлено через 1 час 33 минуты
Evgen1337, я имел в виду, что хочу что бы app.js можно было маршруты разбить на группы. То есть создал я компонент user и что бы в app.js его импортировал, а маршруты по его crud были прописаны в нём, а не app.js
п.с и, как я понимаю, в реакт роуте все параметры в урл обязательные, то есть нельзя сделать типа
<Route path="/posts/:id?" component={PostPage} />
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
17.01.2019, 12:12 4
в разделе Nested Routes
https://reacttraining.com/reac... philosophy
0
8 / 8 / 2
Регистрация: 31.01.2014
Сообщений: 464
17.01.2019, 12:17  [ТС] 5
Evgen1337, там роуты в app.js, когда роуты в нём, всё работает, но роуты внутри дочерних компонентов не видны приложением как в моём примере выше.
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
17.01.2019, 12:48 6
https://reacttraining.com/reac... withRouter

Добавлено через 31 секунду
документацию то прочитал про роутер? там все ... написано %)
0
8 / 8 / 2
Регистрация: 31.01.2014
Сообщений: 464
17.01.2019, 14:29  [ТС] 7
Evgen1337, это передача роута детям. Моя проблема в том, что в app.js
Javascript
1
<Route exact path="/posts" component={HelloMessage} />
У дочернего компонента HelloMessage при вызове...
Javascript
1
2
3
4
5
6
7
8
9
10
11
export default class HelloMessage extends Component {
    render() {
        return (
            <div>
              <p>Welcome to Create Component!!</p>
                <Link to="/posts/about/">HelloMessage2</Link>
                <Route path="/posts/about/" component={HelloMessage2} />
            </div>
        )
    }
}
...ещё одного дочернего компонента HelloMessage2 через Route не работает/не рендереит при переходе на дочернюю ссылку.

Route работает только в app.js
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
17.01.2019, 15:56 8
$ cd ~/
$ create-react-app testrouter
$ cd testrouter
$ yarn add react-router react-router-dom
$ yarn start

заменить содержимое App.js на:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import React from "react";
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
 
const Index = () => <h2>Home</h2>;
const About = () => <h2>About</h2>;
const Profile = () => <h2>Profile</h2>;
const Users = () => <div>
  <h2>
    Users
  </h2>
  <Link to="/users/profile">Profile</Link>
  <Route path="/users/profile" component={Profile} />
</div>;
 
const AppRouter = () => (
  <Router>
    <div>
      <nav>
        <ul>
          <li>
            <Link to="/">Home</Link>
          </li>
          <li>
            <Link to="/about/">About</Link>
          </li>
          <li>
            <Link to="/users/">Users</Link>
          </li>
        </ul>
      </nav>
 
      <Route path="/" exact component={Index} />
      <Route path="/about/" component={About} />
      <Route path="/users/" component={Users} />
    </div>
  </Router>
);
 
export default AppRouter;
работает...
0
8 / 8 / 2
Регистрация: 31.01.2014
Сообщений: 464
17.01.2019, 16:02  [ТС] 9
Я написал

...ещё одного дочернего компонента HelloMessage2 через Route не работает/не рендереит при переходе на дочернюю ссылку.

Route работает только в app.js


Evgen1337, и твой пример в app.js То есть route работает ток в первородном компоненте, но не в дочерних. Ну, у меня не получилось, поэтому пока пишу в app.js все роуты
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
17.01.2019, 16:41 10
Лучший ответ Сообщение было отмечено Gvizl как решение

Решение

у меня работает...

App.js
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import React from "react";
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
import Users from './Users'
const Index = () => <h2>Home</h2>;
const About = () => <h2>About</h2>;
 
const AppRouter = () => (
  <Router>
    <div>
      <nav>
        <ul>
          <li>
            <Link to="/">Home</Link>
          </li>
          <li>
            <Link to="/about/">About</Link>
          </li>
          <li>
            <Link to="/users/">Users</Link>
          </li>
        </ul>
      </nav>
 
      <Route path="/" exact component={Index} />
      <Route path="/about/" component={About} />
      <Route path="/users/" component={Users} />
    </div>
  </Router>
);
 
export default AppRouter;
Users.js
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
import React from "react";
import { Route, Link } from "react-router-dom";
import Profile from './Profile'
 
const Users = () => <div>
  <h2>
    Users
  </h2>
  <Link to="/users/profile">Profile</Link>
  <Route path="/users/profile" component={Profile} />
</div>;
 
export default Users
Profile.js
Javascript
1
2
3
4
5
import React from "react";
 
const Profile = () => <h2>Profile</h2>;
 
export default Profile
1
8 / 8 / 2
Регистрация: 31.01.2014
Сообщений: 464
17.01.2019, 17:01  [ТС] 11
Evgen1337, не работает. Похоже, у меня где-то косяк в настройках.
0
Evgen1337
17.01.2019, 17:07
  #12

Не по теме:

Ну а в консоле то что пишет?

0
8 / 8 / 2
Регистрация: 31.01.2014
Сообщений: 464
17.01.2019, 17:17  [ТС] 13
Evgen1337, спасибо за помощь! Твой вариант рабочий, косяк был у меня
п.с в дочерней компоненте не так импортировал BrowserRouter as Route , а надо было Route (не заметил разницу сначала)
0
17.01.2019, 17:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.01.2019, 17:17
Помогаю со студенческими работами здесь

SM контроллер шины, сетевой контроллер и ethernet контроллер
подскажите где скачать sm контроллер шины, сетевой контроллер и ethernet контроллер для делл...

asus K53S -sm контроллер шины -контроллер универсальный последовательной шины USB и с. контроллер
Люди добрые!! помогите пожалуйста найти драйвера на windows 7 32-b -sm контроллер шины...

Можно ли вывести контроллер в другом?
Например, надо на главной странице вывести страницу регистрации и логина.

Запись структуры в файл на манер делфей
На делфях есть замечательная возможность записывания всей структуры в файл одной строкой: ...

Как переписать код на современный манер?
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int...

Переписать WinApi функцию с Delphi на манер С++
Здравствуйте. Пытаюсь адаптировать функцию с делфи на Ся. vPointer: Pointer; vItem:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru