La metodologia BEM afferma che non dovresti utilizzare selettori globali come i selettori di tag, quindi usa Nav__Item e Nav__Link.
La stessa storia con modificatore attivo. Non dovresti avere entità globali (puoi usare mix ma è un po 'diverso). Quindi il modo migliore è andare con Nav__Item-attivo (o nav__item_state_active nella notazione classica di Bem).
E BEM ha una soluzione per JS, HTML (o modelli) e in realtà la tecnologia di qualsiasi altro blocco.
L'idea principale è quella bloccare Sa tutto di se stesso: come appare (CSS), come funziona (JS), quale html dovrebbe produrre (modelli), i suoi test, la documentazione, le immagini, ecc.
E poiché la tecnologia CSS del blocco NAV applica le regole in modo dichiarativo (si definisce un selettore e tutti i nodi che corrispondono a questo selettore sono disegnati con queste regole) allo stesso modo in cui è possibile descrivere JS del blocco NAV.
Per favore dai un'occhiata http://xslc.org/jquery-bem/ Che è il plug -in jQuery che ti dà la possibilità di lavorare facilmente con i blocchi in modo BEM.
E nel caso in cui utilizzi un sistema di build puoi mettere tutte queste tecnologie nella stessa cartella sul filesystem:
blocks/
nav/
__list/
nav__list.css
nav__list.js
__item/
nav__item.css
nav.css
nav.js
nav.test.js
nav.png
nav.md
Avere tale struttura di file puoi andare più in profondità a ciò che è in realtà e provare i-bem.js: http://bem.info/articles/bem-js-main-terms/