Какое значение имеет начальное подчеркивание при именовании файлов компонентов React в Rails?

Я только начинаю работать с React в Rails.

Когда я сталкиваюсь с другими Rails приложениями с React, я обнаруживаю, что некоторые из них добавляют начальное подчеркивание при именовании *.js.* файлов в /app/assets/javascripts/components/.
например. Пример приложения React Rails

Файлы компонентов такие:

_comment.js.jsx

Хотя некоторые этого не делают, например. Приложение React Rails для учетной записи

Файлы компонентов такие:

record.js.coffee

Так какая разница в добавлении ведущего подчеркивания?

Я знаю, что в представлении Rails имя файла *.html.erb с подчеркиванием в начале означает, что это частичный файл, который вы можете использовать повторно, и мы вызываем метод render для его рендеринга. Но здесь файлы *.js.* требуются components.js с //= require_tree ./components. Так что даже если вы удалите подчеркивание, это не имеет значения. И я считаю, что это единственная часть, которая «повторно использует» компонент.


person sunquan    schedule 27.11.2015    source источник
comment
Добро пожаловать в StackOverflow! Прочтите Как спросить   -  person Lahiru    schedule 27.11.2015
comment
Привет @Lahiru Мой вопрос не связан с конкретной проблемой, с которой я столкнулся?   -  person sunquan    schedule 27.11.2015
comment
Извините, если мой комментарий покажется оскорбительным. Я имел в виду только попытку форматирования с предоставленной уценкой, чтобы другие могли лучше понять ее :)   -  person Lahiru    schedule 27.11.2015
comment
@ Лахиру, неважно, я просто пытаюсь понять, как правильно. Очень мило, что вы написали для меня предложенные правки.   -  person sunquan    schedule 27.11.2015
comment
В Rails использование префикса _ означает, что файл является частичным. Партиал — это небольшой фрагмент кода, который вы можете повторно использовать в нескольких других частях вашего приложения.   -  person Henrik Andersson    schedule 27.11.2015
comment
@limelights Спасибо! Я также использую партиалы в своих представлениях rails и вызываю метод рендеринга для рендеринга партиала. Но если все они представляют собой файлы *.js.jsx, скорее всего, вы не сможете вызвать какой-либо метод rails в этих файлах. Можете ли вы привести пример повторного использования кода в Пример приложения React Rails?   -  person sunquan    schedule 27.11.2015


Ответы (1)


Поскольку есть //= require_tree ./components в application.js. Я думаю, что на самом деле нет никакой разницы в том, чтобы называть их с подчеркиванием в начале.

Тогда я думаю, что может быть что-то связанное с конвейером ресурсов Rails, потому что на самом деле файлы component требуются в sample-react-rails-app. Подчеркивания могут использоваться для предотвращения дублирования при предварительной компиляции.

Я попытался удалить начальные символы подчеркивания в этом файле и запустить приложение локально (также я делаю предварительную компиляцию конвейера активов в dev env). Оказывается, даже если вы удалите начальные символы подчеркивания, прекомпиляция для этих файлов все равно не дублируется, и приложение работает просто отлично. Фактически, конвейер ресурсов будет включать один и тот же файл только один раз, даже если вы require дублируете файл.

В заключение отметим, что начальное подчеркивание не влияет на работу вашего приложения. Вероятно, это соглашение об именах после частичных имен, как в представлениях Rails или компиляции SASS, которые также упоминались в Rails Issues #3094. И вообще я думаю, что стоит следовать соглашению, чтобы сказать себе и своей команде, что эти файлы работают как незавершенные части.

person sunquan    schedule 29.11.2015