Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Реализация frontend'а для ASP.NET MVC?

Лучший ответ:
Добрый день!
Учитывая объем задач и наверняка не очень большие сроки их реализации, возможно, имеет смысл отдать front-end профессионалу. Но если таковой возможности нет, то я отдал бы предпочтение обычному Razor.
Постараюсь объяснить - почему.
1. AngularJS (и ему подобные) мне, увы, не знаком. Следовательно, нужно потратить достаточно много времени на его изучение и решение проблем в ходе использования в проекте. А это в свою очередь может сильно сказаться на сроках проекта.
2. Использовать какие-либо готовые контролы (аля гриды jQueryUI и т.п.) - тут я бы не стал торопиться. Как ни крути, настает такой момент, когда нужно, чтобы эти контролы могли делать то, что от них хотят, но то, для чего они не приспособлены. Как следствие - код обрастает дикими костылями. К тому же, на мой взгляд, внешний вид оставляет желать лучшего... Если наступает понимание, что этот контрол сможет решить задачу - то тогда его можно применить.
3. Взял бы в качестве основы front-end'а какой-нибудь нормальный frontend-framework (Bootstrap, FlatUI, Pure). Возможно - даже несколько (сам отдаю предпочтение Pure Grid + FlatUI). Проблем со стилизацией будет гораздо меньше, чем если всё самому с нуля писать.
4. Razor вполне прост, если его правильно применять (имею в виду правильное разделение на Layout, Partial View, View, при необходимости кеширование вывода) - непонимаю, чем он Вас так пугает.
5. Насчет всяких всплывающих окон, деревьев, гридов - отдал бы предпочтение специальным плагинам (отдельный плагин под окна, отдельный - под деревья, отдельный - под гриды). Как правило, можно найти очень удобные, простые и кастомизируемые решения. На мой взгляд, лучше использовать какие-то специализированные инструменты (которые решают только 1 задачу), чем унифицированные (которые могут решать целую кучу задач).
Было бы здорово, если бы другие специалисты привели свою точку зрения. Интересно узнать, как люди решают подобные задачи...

Худший ответ:
Ну во-первых если у вас будет большое приложение под нагрузкой - узких мест и без backend-а будет с горкой. БД например. ИМХО - оптимальным решением было бы БД - WEB API для отдачи данных(пригодится если будет что-то помимо веб-морды) - Angular .
Вопрос: Помогите решить проблему Wi-Fi

Лучший ответ:
Слишком мало информации по состоянию устройств.
Есть ли логи зависающего LinkSys?
Что там за прошивка (сток или DD/Open-WRT)? Не перегревается ли? В порядке ли питание?
Про качество сети — Возьмите inSSIDer и проверьте эфир вокруг на предмет свободных каналов.

Худший ответ:
Есть ли логи зависающего LinkSys? — нет
Что там за прошивка (сток или DD/Open-WRT)? — сток
Не перегревается ли? — нет
В порядке ли питание? — да
Вопрос: Как оптимизировать время сайта?

Лучший ответ:
Я использую https://www.npmjs.com/package/jstz
Определяет таймзоны на клиентской стороне.
Пример использования: https://jsfiddle.net/5ybsto18/var tz = jstz.determine();
var timezone = tz.name();

Худший ответ:
В соцсетях указывается город твоего места обитания, поэтому не сложно в базе посмотреть у какого города какая timezone. В вашем случае нужно комбинировать geoip и timezone.
Вопрос: Проблема с производительностью сайта

Лучший ответ:
Для начала самое банальное — проверьте, включено ли в системе кеширование, и проанализируйте долгие запросы

Худший ответ:
Включите логгинг длинных запросов. Иногда такие проблемы решаются установкой правильного индекса и/или mysql кеша.
Вопрос: Почему не проходит валедацию?

Лучший ответ:
Так английским по белому же написано:
Attribute scr not allowed on element script at this point.

Худший ответ:
В начале одинарная кавычка у вас стоит, а конце двойная, и нужно src а не scr
Вопрос: Как сделать эффект «флажка»?

Лучший ответ:
Ну вот, как-то так
https://jsfiddle.net/DelphinPRO/3Lp67w6s/

Худший ответ:
Я придумал, но не могу сказать словами на русском.
Пишите в вк @ da411d
Вопрос: Сакральные 12 гридов, в чем подвох?

Лучший ответ:
12 делится на 2, 3, 4, 6Двенадцатеричная система счисления

Худший ответ:
Ничем не отличается, кроме возможности расположить больше колонок в ряду.
И чем больше общее число, тем меньше ширина одной колонки
Если хотите гибко, смотрите в сторону Susy. Ибо все "фиксированные" по количеству колонок системы, ограничивают вас рамками.
Вопрос: Если есть, то покажи — в Wordpress, вредно ли?

Лучший ответ:
А есть у вас Memcached / Redis на сервере? Вообще, когда вы получаете пост / посты, то по умолчанию WP запрашивает и кеширует их метаданные. Так что все вызовы get_post_meta() внутри Loop не дают никакой нагрузки на БД, эти запросы обращаются исключительно в кеш (runtime или persistent). Так что спокойно можно использовать такой код и не беспокоиться о нем. 
Что касается самого MySQL - подержите работающим хотя бы с недельку (оптимально - месяц), чтобы статистику накопить. Анализируйте - через MySQL Tuner, PHPMyAdmin, через SQLProfiler, mysqlslap, смотрите slow query log, ищите утечки памяти или залипающие запросы.

Худший ответ:
Спасибо всем за ответы.
Решил проблему сменив хостера + чуть улучшил железо.
Теперь: VDS - 8 GB RAM, 6 ядер CPU 
Проблемы пропали!
PS: Последней каплей стало недоступность сайта в течении 7ми часов по причине полного падения сервера (не только базы, как было ранее)
Вопрос: Сохранение фала csv в windows-1251, javascript?

Лучший ответ:
Kano, Спасибо за первую ссылку.
Надо просто "некий текст", который я кладу в файл перевести в ссылку с кодировкой windows-1251.
Я взял за основу  https://github.com/mathiasbynens/windows-1251 и дописал.var encodeURL = function(input) {
        var length = input.length;
        var index = -1;
        var codePoint;
        var pointer;
        var result = '';
        while (++index < length) {
            codePoint = input.charCodeAt(index);
            // “If `code point` is in the range U+0000 to U+007F, return a byte whose
            // value is `code point`.”
            if (codePoint >= 0x00 && codePoint <= 0x7F) {
                result += '%' + (codePoint<16?'0':'') + codePoint.toString(16);
                continue;
            }
            // “Let `pointer` be the index pointer for `code point` in index
            // `single-byte`.”
            if (hasOwnProperty.call(INDEX_BY_CODE_POINT, codePoint)) {
                pointer = INDEX_BY_CODE_POINT[codePoint];
                // “Return a byte whose value is `pointer + 0x80`.”
                result += '%' + (codePoint<16?'0':'') + (pointer + 0x80).toString(16);
            } else {
                // “If `pointer` is `null`, return `error` with `code point`.”
                result += error(codePoint, mode);
            }
        }
        return result.toUpperCase();
    };
Или вот еще более полное решение по кодировки. text-encoding

Худший ответ:
Kano, Спасибо за первую ссылку.
Надо просто "некий текст", который я кладу в файл перевести в ссылку с кодировкой windows-1251.
Я взял за основу  https://github.com/mathiasbynens/windows-1251 и дописал.var encodeURL = function(input) {
        var length = input.length;
        var index = -1;
        var codePoint;
        var pointer;
        var result = '';
        while (++index < length) {
            codePoint = input.charCodeAt(index);
            // “If `code point` is in the range U+0000 to U+007F, return a byte whose
            // value is `code point`.”
            if (codePoint >= 0x00 && codePoint <= 0x7F) {
                result += '%' + (codePoint<16?'0':'') + codePoint.toString(16);
                continue;
            }
            // “Let `pointer` be the index pointer for `code point` in index
            // `single-byte`.”
            if (hasOwnProperty.call(INDEX_BY_CODE_POINT, codePoint)) {
                pointer = INDEX_BY_CODE_POINT[codePoint];
                // “Return a byte whose value is `pointer + 0x80`.”
                result += '%' + (codePoint<16?'0':'') + (pointer + 0x80).toString(16);
            } else {
                // “If `pointer` is `null`, return `error` with `code point`.”
                result += error(codePoint, mode);
            }
        }
        return result.toUpperCase();
    };
Или вот еще более полное решение по кодировки. text-encoding
Вопрос: Как отобразить страницу сайта в Activity на Android Studio?

Лучший ответ:
Такое чувство, что последнее время люди даже не пытаются гуглить.

Худший ответ:
Используйте виджет WebView. Для задач такого плана, он более чем достаточный.
Вопрос: Как сделать кнопку «Продолжить покупки»?

Лучший ответ:
Гуглите REFERER:echo $_SERVER["HTTP_REFERER"];

Худший ответ:
Проще не из корзины делать,а через pop-up при добавлении товара в корзину. Делите на 2 кнопки типа:" перейти в корзину" и " продолжить покупки"
Вопрос: Почему не получаеться подключиться по SSH (через Putty) к локальному компьютеру?

Лучший ответ:
Резюмируя вышесказанное (и немного отсебятины) - открываем терминал и выполняем команды. На второй команде он может спросить пароль, это нормально, пробуем ввести свой. Если не подошёл, то ищем того, кто ставил убунту и дальше мучаем его :)
1. Проверяем, есть ли в процессах, собственно, сервер SSHps aux | grep ssh
Если видим в выводе только эту команду, ставим OpenSSHdsudo apt-get install openssh-server
Если написал, что is already the newest version, то пробуем запуститьsudo service ssh restartps aux | grep ssh
Если не появился, то вывод следующих команд в студию:cat /etc/ssh/sshd_configtail -10 /var/log/syslog
2. Если в выводе ps aux есть что-то вроде /usr/sbin/sshd -D, тоsudo netstat -4nlp | grep sshd
Если там не 0.0.0.0:22, а, например 0.0.0.0:2222, то меняем порт в PuTTY на 2222 (а ещё можно исправить в sshd_config, но это потом)
Если всё ОК, то остался файерволлsudo iptables-save
и вывод в студию

Худший ответ:
Под локальным компьютером в данном контексте я подразумеваю подключение к самому себе. Если вы не можете подключиться к 127.0.0.1, у вас не запущен демон sshd, или очень кривые правила iptables, которые надо снести.
P.S. вы еще и дИлетант в русском языке
Вопрос: Кирилица в C# (JSON)?

Лучший ответ:
Конкретно это должно помочь.string json = Encoding.UTF8.GetString(client.DownloadData(url));
А так же совет почитать об async/await чтобы сделать эти вызовы асинхронными и не вешать интерфейс при загрузке.

Худший ответ:
после получения response.response.items[0].body нужно преобразовать кодировку в ту, которая используется при отображении.
Вопрос: Как подписаться на хабра вопросы в rss?

Лучший ответ:
http://habrahabr.ru/rss/qa вроде все вопросы получаю, как и получал

Худший ответ:
Переделывают, наверное. Ждите…
Вопрос: Как решить проблему с float?

Лучший ответ:
Пример
https://jsfiddle.net/soledar10/opy1jh9x/

Худший ответ:
Проблему float-ов легко решить отказом от их использования в пользу flexbox-ов. А вообще можно прописать min-height.
Вопрос: Синхронизация Denwer и удаленного сервера при помощи Dreamweaver?

Лучший ответ:
Выкинуть в топку первое и второе и выучить наконец git и стандартный workflow разработки ПО.
А то создается впечатление, что вы к нам из 90х телепортировались. С денвером. ага.

Худший ответ:
Могу я сказать что Вы динозавр? Я денвер с дримвьювером последний раз лет 6-7 назад открывал... Сейчас работаю в связке docker + phpStorm и Вам советую посмотреть туда же.
К вопросу как синхронизироваться: поставьте на свой сервер Open SSH и синхронизируйтесь по sFTP. Для phpStorm такая возможность из коробки за 1 минуту настраивается.
Вопрос: Как лучше сделать сайт?

Лучший ответ:
Перефразирую ваш вопрос:
Как лучше сделать молоток, что бы потом превратить его в бензопилу?
Изначально делать бензопилу.

Худший ответ:
Сразу натягивать дизайн на движек магазина. Вначале на страничный функционал, а потом на функционал магаза.
Вопрос: Как реализовать Парсинг страницы, и отправку запроса, на java?

Лучший ответ:
https://jsoup.org/ далёк от веб
HTML таки знать (хотябы понимать) придётся.

Худший ответ:
Мне подобное доводилось делать.
Обошелся стандартным HTTPRequest + HTMLCLeaner.
Вопрос: Как верстать сайт под разные размеры экрана устройства?

Лучший ответ:
Это какой-то особый вид мазохизма?
В пикселях слишком легко?
https://www.smashingmagazine.com/2013/03/responsiv...

Худший ответ:
Адаптивная версия сайта называется
Которая адаптируется под размер экрана
Вопрос: Изящное дизайн-решение для работы с картами

Лучший ответ:
Буквально вчера пробегал пост про Kartograph. Вроде симпатично

Худший ответ:
Вот почва для размышлений: www.smashingmagazine.com/2010/04/06/maps-in-modern-web-design/

и вот: odopod.com/contact/

Но это больше скорее к инфографике на картах, чем к анимации
Вопрос: Кто то / что то банит js от исполнения?

Лучший ответ:
jQuery(document).ready(function() {
  initForm();
});
или(function($){
   $(document).ready(function() {
     initForm();
   });
})(jQuery);

Худший ответ:
По всей видимости, Вы не подключили JQuery. Проверьте, правильно ли Вы прописали до него путь. Я подключал так, в footer прописывал <script src="../wp-content/themes/responsive/core/js/jquery-1.11.3.min.js"></script>
<script src="../wp-content/themes/responsive/core/js/jquery-2.1.4.min.js"></script>
Вопрос: Android SQLite какой ORM фреймворк используете вы?

Лучший ответ:
Тайминги работы:
10_000 Элементов со вложенными 10-ю элементами в каждом.

Худший ответ:
Раньше использовал OrmLite. Правда проблем при написании DAO не заметил.
Для GreenDAO есть генератор DAO классов.
Тут либо положиться на рефлексию и получить медленную работу или написать их самим, получив много однообразного кода.
Затем использовал SQLBrite и DAO к нему. 
Сейчас для разнообразия использую Stor.io, но это уже просто обёртка над SQLite как и SQLBrite без DAO.
Вопрос: Как мне присваивать определенный класс в зависимости от страницы?

Лучший ответ:
В первом комментарии всё верно и лаконично сказали — через $rootScope — я же просто разжую.
Модуль ngRoute это просто обычный конфиг — вы в этот конфиг можете пихать всё, что вам угодно. Задайте каждой страничке уникальную айдишку или название категории странички:app.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/main', {
        id: 'main',
        title: 'Главная',
        category: 'rootPage',
        templateUrl: 'mainPage.html',
        controller: 'MainPage',
      }).
      when('/powerSky', {
        id: 'powersky',
        title: 'Всем повер-скай, посоны',
        category: 'contentPage',
        templateUrl: 'template/powerSky.html',
        controller: 'PowerSky'
      }).      
      otherwise({
        redirectTo: '/main'
      });
  }]);
Теперь, при каждой смене странички, в основном контроллере (это который общий для всех страниц сайта) пихайте в $rootScope конфиг текущей странички (текущего роута) в параметр page:app.controller('MainController', function($rootScope) {
  $rootScope.$on('$routeChangeSuccess', function(e, current, previous) {
    var page = current.$$route;

    // присваиваем глобально
    $rootScope.page = page;
  });
});
Теперь в HTML-шаблоне вставляйте класс для BODY:<!DOCTYPE html>
<html ng-app="app">
    <head>
        <title>{{page.title}}</title>
    </head>
    <body ng-class="page.id" ng-controller="MainController">
        <main ng-view></main>
    </body>
</html>
Или, если у вас странички разбиты на некие общие категории, то не айдишку вставляем, а название категории (тогда меньше всяких классов нужно будет писать в CSS):<!DOCTYPE html>
<html ng-app="app">
    <head>
        <title>{{page.title}}</title>
    </head>
    <body ng-class="page.category" ng-controller="MainController">
        <main ng-view></main>
    </body>
</html>
Ну и в стилях будет:body {
    &.rootPage {
        background-color: #fff;
    }

    &.contentPage {
        background-color: #ddd;
    }
}

Худший ответ:
Через $rootScope?
Вопрос: Как организовать серверную часть магазина на 1 миллион товаров?

Лучший ответ:
Ничего не понятно. Кто сказал, что не поместитесь?
Вы с мониторинга начните и статистики, а потом делайте выводы по ситуации.
А то пальцем в небо Понятно что на 1 сервере уже не поместимся...

Худший ответ:
Оперативки x2 добавьте и все.  Остальное судя по-всему - сделано более-менее нормально.
Вопрос: Как пустить консольную (cmd) программу через прокси?

Лучший ответ:
Программа должна уметь использовать прокси.
Как вариант - нужен шлюз, который бы сам весь трафик заворачивал на прокси-сервер (прозрачный прокси).

Худший ответ:
Если программа не умеет работать с прокси и выход в интернет без роутера, или роутер "для экономных", не умеющий прозрачное проксирование - никак. Если роутер, который умеет перенаправить запрос по порту 80 на прокси (свой или на другом компе) - то настроить.
Вопрос: Восстановление raid после инициализации?

Лучший ответ:
Вы точно выбрали "инициализировать", если да, то сочувствую, берите диски и скармливайте их R-studio или подобному (RAID reconstruktor). В таких случаях нужен "ребилд", а не "инит", который создает массив заново

Худший ответ:
инит вероятно затер всю инфу 
пробуйте софтом для востановления рейдов но вероятно оно умерло
Вопрос: Самый сильно защищенный мессенджер — какой он?

Лучший ответ:
Есть p2p-мессенджеры - децентрализованно, максимально секурно. Что насчет  секурности Telegram и прочего - никто не знает, что у них под капотом (на сервере).

Худший ответ:
Вы не сообщили, что вы хотите от мессенджера, кроме безопасности? Возьмём за эталон предлагаемых опций Скайп, и если вам нужно всё то же, что предлагает Скайп, плюс ещё и безопасность, то такого не найдёте. Самый близкий по пользовательским опциям к Скайпу - это Tox: неплохое видео и звук, есть передача файлов, но нету показа Рабочего стола в видеопотоке (вместо этого пересылаются статические скриншоты). И разумеется, у Tox (в отличие от Скайпа и прочих) нет никакого центрального сервера, пользователи общаются между собой напрямую.
Вопрос: Удобный скрипт для загрузки изображений на сайт?

Лучший ответ:
Посмотрите в сторону swfupload

Худший ответ:
не проще самому написать?
Вопрос: Гугл хром дичайше тормозит, что может быть причиной?

Лучший ответ:
Что с ним происходит Заразу подцепили. как это исправитьВыяснить что за зараза, и вычистить ее. Если с этим возникают проблемы, пригласить специалиста.

Худший ответ:
Удаляете браузерКачаете программу  www.surfright.nl/en     HitmanPro 3.7Соответственно, запускаетеВсё норм
Вопрос: Плагин для jQuery (всплывающие подсказки)?

Лучший ответ:
Кажется, удовлетворяет всем критериям:
bassistance.de/jquery-plugins/jquery-plugin-tooltip/

Худший ответ:
Посмотрите на Tooltips в Bootstrap twitter.github.com/bootstrap/javascript.html#tooltips (правда вам потребуется не только Jquery, но и подключение Bootstrap).
Вопрос: Взаимодействие двух веб-страниц — какая прослойка?

Лучший ответ:
Сокеты в помощь.
https://github.com/sockjs/sockjs-client<script src="//cdn.jsdelivr.net/sockjs/1.0.0/sockjs.min.js"></script>var sock = new SockJS('http://mydomain.com/my_prefix');
 sock.onopen = function() {
     console.log('open');
 };
 sock.onmessage = function(e) {
     console.log('message', e.data);  // Здесь принимай изменяющиеся значения
 };
 sock.onclose = function() {
     console.log('close');
 };

 sock.send('test');  // привяжи это к своему событию
 sock.close();

Худший ответ:
Можно писать в localStorage. Там и события есть.
Вопрос: Может ли нанятый разработчик моб. приложения угнать идею?

Лучший ответ:
И почему все думают, что кому-то нужна их идея?...
А вообще, подобные вопросы решаются крайне просто: оформляете юр.лицо, заключаете с разработчиком договор на оказание услуг (либо, трудовой договор) и даете на подпись NDA.

Худший ответ:
Работайте через фриланс биржи, с разработчиками, которые заботятся о своей репутации и будет все хорошо.
Вопрос: Несколько операции, один $.ajax запрос, один php файл?

Лучший ответ:
Почитайте Боба Мартина "Чистый код", на мой взгляд основа нормальной организации кода.
По поводу советов коллег по цеху - оно всё правильно, только не факт, что вы сделаете так, как следует. Лучше всего если вы найдете опытного программиста для ревью и помощи в рефакторинге. Тут как с тренером или коучем: несколько занятий для понимания основных принципов как правильно делать, а дальше как душе угодно.

Худший ответ:
RequestBlock == true; // разрешаем в глобале запросы

$('html').on('click','.element',function() {
	var data =  {
		RequestHead: {
			RequestTarget:'somePhpFunction', // вызываемая функция php, любое имя
			RequestType:'Update' // тип
		}, 
		RequestData: {
			select:'0' // id
		}
	}
	var data = JSON.stringify(data);

	var s = {
		type:'POST',
		url:'lib/CONNECT.php',
		data:data,
		dataType:'json',
		parent:'somePhpFunction'
	};

	SendData(s); // отправляем данные
});




function SendData(s) {
	if (s.type && s.type.length || s.url && s.url.length || s.data && s.data.length || s.dataType && s.dataType.length || s.parent && s.parent.length) {
		if (RequestBlock == false) {
			console.log('выполняется другой запрос');
		} else if (RequestBlock == true) {
			RequestBlock = false; // блокируем параллельный запрос, ждем выполнения текущего

			$.ajax({
				type: s.type,
				url: s.url,
				data: s.data,
				cache: false,
				dataType: s.dataType,
				timeout: 15000,
				success: function(r) {
					RequestBlock = true; // для избежания ошибок получения данных не той функцией - блокируем повтороную отправку данных переменной RequestBlock. Теряем ассинхронность, зато упрощаем логику отправки и приема данных
					SendSuccess(s, r);
				},
				error: function(jqXHR, textStatus, errorThrown) {
					RequestBlock = true;
					if (textStatus === 'timeout' || textStatus === 'abort' || textStatus === 'parsererror') {
							console.log('ошибка');
					} else if (textStatus === 'error') {
							console.log('ошибка');
					} else {
						SendError(s, r);
					}
				}
			});
		}
	}
}



function SendSuccess(s, r) {

	if (s.parent == 'somePhpFunction') {
		RsponseForSomePhpFunction = r; // выносим в глобал уникальную переменную или передаем функции
		JsSomePhpFunction(r);
		// вызываем функцию пост-обработки
	}
}



function SendError(s) {
	if (s.parent == 'somePhpFunction') {
		console.log('ошибка');
	}
}$RequestParameters = json_decode(file_get_contents("php://input"));

		if (!empty($RequestParameters->RequestHead) || !empty($RequestParameters->RequestData)) {
			if (!empty($RequestParameters->RequestHead->RequestTarget) || !empty($RequestParameters->RequestHead->RequestType)) {
				if ($RequestParameters->RequestHead->RequestTarget == 'somePhpFunction') {

					// если надо, можно прямо тут задействовать RequestType
					$Result = somePhpFunction($RequestParameters); // вызываем функцию

				}
			} else {
				$Result = array(
					'ResponseStatus' => "error", 
					'ResponseData' => "error: 0002"
				);
			}
		} else {
			$Result = array(
				'ResponseStatus' => "error", 
				'ResponseData' => "error: 0001"
			);
		}

		echo json_encode($Result);
Вопрос: Количество зарядов для голосования

Лучший ответ:
Нет, все ок.

Худший ответ:
Я заметил! НЛО гайки крутит :)
Вопрос: Как влиять на props дочернего компонента из родителя?

Лучший ответ:
Через $emit из первого селекта выбрасывать некоторое значение и передавать его во второй. Способ передачи и что передавать - дело ваше. По сути единственный способ передать значение "на верх" это $emit

Худший ответ:
Реализуем поддержку директивы v-model компонентом f-select - он должен принимать параметр value, который будет определять значение элемента <select> внутри компонента, а при выборе пользователем какого-то пункта выбранное значение должно отправляться родителю:

<select
  :value="value"
  @input="$emit('input', $event.target.value)"
  ...
Добавим в родительский компонент свойство country, и свяжем его c экземпляром компонента, который ответственен за выбор страны:

<f-select
  v-model="country"
  ...
Теперь для экземпляра компонента, ответственного за выбор города, можно значение параметра disabled поставить в зависимость от выбора страны:

<f-select
  :disabled="!country"
  ...
jsfiddle.net/4ugta2v5
Вопрос: Что быстрее css или js?

Лучший ответ:
Прогружается: одинаково (при равных размерах и сжатии)
Исполняется: CSS быстрее, чем JS

Худший ответ:
Chrome > F12 > Вкладка Network > F5