JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://yastatic.net/bem-components/latest/desktop/bem-components.css">
<script src="https://yastatic.net/jquery/2.1.4/jquery.min.js"></script>
<script src="https://yastatic.net/lodash/2.4.1/lodash.min.js"></script>
<script src="https://yastatic.net/backbone/1.1.2/backbone.js"></script>
<script src="https://yastatic.net/bem-components/latest/desktop/bem-components.js+bh.js"></script>
<div class="form"></div>
<div class="json"></div>

JavaScript

function bemRender(element, bemjson, callback) {
    modules.require(['i-bem__dom', 'BEMHTML'], function(BEMDOM, BEMHTML) {
	    var html = BEMHTML.apply(bemjson);
        BEMDOM.append(element, html);
        if(typeof callback == 'function') {
            callback();
        } 
	});
}

var SelectView = Backbone.View.extend({
		events: {
            'change input': 'onCheck'
        },
        initialize() {
            this.model = new Backbone.Model();
            this.model.on('change', this.renderValue, this);
            this.renderValue();
        },
        render() {
            bemRender(this.$el, {
                block : 'checkbox-group',
                mods : { theme : 'islands', size : 'm'},
                name : 'checks',
                options : [
                    { val : 'block', text : 'Блок' },
                    { val : 'elm', text : 'Элемент' },
                    { val : 'mod', text : 'Модификатор' }
                ]
            });
            
        },
        
        renderValue() {
            $('.json').html(JSON.stringify(this.model.toJSON()))
        },

        onCheck(e) {
            this.model.set(e.target.value, e.target.checked)
        }                                  
    });
        
    var selectview = new SelectView({el: '.form'});
    selectview.render();