• Что сделать, чтобы выпадающее меню заработало?

    @boga-net Автор вопроса
    transition-delay: 1s; это как раз для того, чтобы при наведении меню появлялось мгновенно, но скрывалось с задержкой.

    Но у вас появится вторая проблема, это то, что если попытаться навести на раскрытые пункты, меню закрывается.


    Именно ) Долго с этим борюсь

    ут нужно сделать так, чтобы dropdown-menu было ближе к ссылке меню, чтобы между ними не было разрыва


    Думал об этом, но не понял, как это реализовать. По идее, если бы у ссылки был padding, достающий до выпадающего меню, то так можно было сделать. Но в примере у ссылки нет padding или line-height
    Выпадающее приходится позициниоровать с абсолютом и при наведении, оно съезжает сверху вниз, так что образуется отступ между ними
  • Как настроить автоматическое обновление html в webpack?

    @boga-net Автор вопроса
    Стоит ли игра свеч?


    Это хороший вопрос. Но и пол дня потраченных на вебпак, чтобы страница сама обновлялась и была подсветка синтаксиса .sass - тоже того не стоило, если подумать. Я до этого пользовался Koala, а нажать CTRL+R - не составляло особого труда. Отвечая на ваш вопрос про частоту изменений в html - да, часто, если брать большинство моих ситуаций. А так, если уж начинать пользоваться вебпаком, то почему бы один раз не настроить всё под себя и подключить тот же вотчер за html ?
  • Как установить SASS в проект через npm?

    @boga-net Автор вопроса
    nakree, наконец-то заработало ))

    Этот способ выдавал ошибку
    const extractSass = new ExtractTextPlugin({
    	    	filename: './css/style.css',
     	    	disable: process.env.NODE_ENV === 'development'
    });


    а вот с этим заработало :

    plugins: [
    		cleanDist,
        new ExtractTextPlugin('style.css')
      ]


    Не знаю, в чём дело, может в разных версиях чего-то. И ещё помогла команда

    npm rebuild node-sass

    Теперь осталось понять, как приручить не .scss, а .sass )

    Ещё раз спасибо
  • Как во Vue в одном объекте внутри data, сослаться на другой объект в data?

    @boga-net Автор вопроса
    Антон, Прошу прощения за столь поздний ответ. Да, теперь я понял, большое спасибо. Рановато попробовал поэкспериментировать, не освоив жизненные циклы и created
  • Как установить SASS в проект через npm?

    @boga-net Автор вопроса
    nakree, Спасибо. Всё работает, кроме определения стилей. Всё это время пытался разобраться в вебпаке. Всё хорошо, но стили не определяются из файла scss. Всматриваляс десяток раз в код, всё сверял, пробовал разные варианты и стили работают только в теге style в index.html

    В общем, решил забить на это дело до лучших времён )
    Ещё раз спасибо

    На всякий случай прилагаю код, чтобы показать, что всё сделал так же

    в шапке html
    <link rel="stylesheet" href="dist/styles.scss">
    // пробовал и css


    index.js
    import './css/style.scss';

    package.json
    "devDependencies": {
        "clean-webpack-plugin": "^0.1.19",
        "css-loader": "^0.28.11",
        "extract-text-webpack-plugin": "^4.0.0-beta.0",
        "file-loader": "^1.1.11",
        "node-sass": "^4.9.0",
        "path": "^0.12.7",
        "sass-loader": "^6.0.7",
        "style-loader": "^0.20.3",
        "webpack": "^4.9.1",
        "webpack-cli": "^2.1.4",
        "webpack-dev-server": "^3.1.4"
      }


    webpack.config.js
    const path = require('path');
    const ExtractTextPlugin = require("extract-text-webpack-plugin");
    const CleanWebpackPlugin = require('clean-webpack-plugin');
    const extractSass = new ExtractTextPlugin({
    	    	filename: './css/styles.css',
    	    	disable: process.env.NODE_ENV === 'development'
    });
    
    const cleanDist = new CleanWebpackPlugin(['dist']);
    
    let conf = {
    	entry: './src/index.js',
    	output: {
    		path: path.resolve(__dirname, './dist/'),
    		filename: 'main.js',
    		publicPath: 'dist/'
    	},
    	devServer: {
    		overlay: true
    	},
    	module: {
    		rules: [
    			{
            test: /\.scss$/,
            use: extractSass.extract({
              fallback: 'style-loader',
              use: ['css-loader', 'sass-loader']
            })
          },
          {
            test: /\.(png|svg|jpg|gif)$/,
            use: ['file-loader']
          },
          {
            test: /\.(woff|woff2|eot|ttf|otf)$/,
            use: ['file-loader']
          }
    		]
    	},
    	plugins: [
    		cleanDist,
        extractSass
      ]
    };
    
    // Карта кода
    module.exports = (env, options) => {
    	let production = options.mode === 'production';
    
    	conf.devtool 	= production 
    								? false
    								: 'eval-sourcemap';
    
    	return conf;
    }


    файл style.scss в папке src, в папке css
    файл main.js в папке src
    файл index.html в корневой папке проекта
  • Как во Vue в одном объекте внутри data, сослаться на другой объект в data?

    @boga-net Автор вопроса
    Антон
    Попоробуй посмотри что будет, если


    const obj = {
      a: 1,
      b: this,
      с: this.a,
    }


    Да, я понимаю, что здесь потеряется контекст, но я не думал, что во Vue будет что-то не так, если методы могут обращаться к this.element внутри data, а объекты внутри data - не могут.
    Я смотрю видео уроки и попутно что-то делаю и решил поэкспериментировать, потыкать. И про created ещё ничего не видел и не слышал
    Спасибо. Главное я понял, что таким образом нельзя так обращаться. Но не понял, почему компонента ещё нет, и почему data ещё не определено
  • Как установить SASS в проект через npm?

    @boga-net Автор вопроса
    nakree
    Я правильно понял, что в файле package.json описаны все зависимости проекта и если взять какой-то готовый package.json и в командной строке запустить npm i, то установятся все зависимости ?

    Я взял package.json из другого проекта, в который устанавливал Vue, через npm init webpack-simple и здесь удалил лишнее (что связано со Vue и Babel :

    "devDependencies": {
        "css-loader": "^0.28.7",
        "file-loader": "^1.1.4",
        "node-sass": "^4.5.3",
        "sass-loader": "^6.0.6",
        "webpack": "^3.6.0",
        "webpack-dev-server": "^2.9.1"
      }


    Теперь после команды npm i всё это дело установится, правильно понимаю ? И вебпак и sass лоадер. Значит можно иметь один такой готовый package.json с нужными мне библиотеками, модулями и просто закидывать его в проект и устанавливать все ништяки ?
  • Как установить SASS в проект через npm?

    @boga-net Автор вопроса
    Большое спасибо за развёрнутый ответ. К сожалению, любая документация даётся с большим трудом, т.к. мне сложно визуально воспринимать техническую информацию в силу рядя причин. К тому же, с английским языком я не на "ты". Мне легче понять аудио информацию с живым примером. И как вариант - просто увидеть некое готовое решение : пример того, что нужно ввести в командную строку, чтобы добиться желаемого результата. Если не вдаваться в подробности, то это, конечно, сугубо моя проблема, но в данный момент легче задать вопрос, чем попытаться почитать документацию, в процессе прочтения которой, пропадёт всякое желание что-либо делать, утратится концентрация внимания и захочется спать )

    Именно живой пример и живое объяснение простыми словами - понятно, в отличие от сухого языка документации.

    Спасибо, буду разбирать ваш ответ
  • Как установить SASS в проект через npm?

    @boga-net Автор вопроса
    knowledge чего-то явно не хватает ) то есть я открываю командную строку, ввожу одну эту команду и всё должно заработать ? В папке проекта появилась папка node_modules и файл package-lock.json
    SASS не активен

    Что ещё нужно установить, чтобы node отслеживал изменения в проекте, чтобы работало npm run dev ?
  • Как организовать поиск во Vue?

    @boga-net Автор вопроса
    Благодарю
  • Как организовать поиск во Vue?

    @boga-net Автор вопроса
    0xD34F Спасибо. Буду разбирать
  • Откуда появляется горизонтальный отступ у инлайн-блоков?

    @boga-net
    Подключите reset.css или normalize.css
    Уберите отступы у всех элементов
    * {
    margin: 0;
    padding: 0;
    }
  • Как начать работать во Vue? Где писать код?

    @boga-net Автор вопроса
    Антон, Большое вам спасибо за потраченное время. Начинаю понимать логику. В том и заключалась сложность, что никто этого не объяснил, и всё писали код без разделения, как в вашем комментарии. И не представляю, как новичку разобраться в этом и понять, что и куда.

    А вот это надо было вставить таким образом (уже методом тыка получилось)
    export default {
      name: 'app',
      data () {
        return {
          friends: [
            {
              first: 'Bobby',
              last: 'Down',
              age: 25
            },
            {
              first: 'John',
              last: 'Dowson',
              age: 38
            }
          ]
        }
      }
    }


    Ещё раз большое спасибо, что потратили время и объяснили
  • Как начать работать во Vue? Где писать код?

    @boga-net Автор вопроса
    Антон, Вот простой пример:

    обычный html документ.

    подключаю скрипт -
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>


    создаю контейнет - <div id="app"></div>

    Пишу код:

    Vue.component('friend', {
      props: ['friend'],
      filters: {
        fullName(name) {
          return `${name.first} ${name.last}`;
        }
      },
      methods: {
        decrementAge(friend) {
          return friend.age -= 1;
        },
        incrementAge(friend) {
          return friend.age += 1;
        }
      },
      template: `
        <div>
          <h3>{{ friend.age }}</h3>
          <input v-model="friend.first" />
          <input v-model="friend.last" />
          <button v-on:click="decrementAge(friend)"> - </button>
          <button v-on:click="incrementAge(friend)"> + </button>
        </div>
      `
    });
    
    const app = new Vue({
      el: '#app',
      data: {
        friends: [
          {
            first: 'Bobby',
            last: 'Down',
            age: 25
          },
          {
            first: 'John',
            last: 'Dowson',
            age: 38
          }
        ]
      },
      template: `
        <div class="center">
          <friend v-for="friend in friends" v-bind:friend="friend"/>
        </div>
      `
    })


    всё работает.

    Тоже самое вставляю в App.vue в тег script - Vue is not defined.

    Что я делаю не так ?
  • Как начать работать во Vue? Где писать код?

    @boga-net Автор вопроса
    Антон,


    И не надо никаких разных туториалов и уроков, официальной документации вполне достаточно.


    Да вот наткнулся на видео урок Дмитрия Лаврика и он показал подключение с помощью npm (чего я раньше избегал)) и поняв силу вебпака, уже хочу учиться осваивать Vue таким образом

    Тут ещё сложность заклчюается в том, что разные автора не уточняют этот момент и приходится самому как-то додумывать
  • Как начать работать во Vue? Где писать код?

    @boga-net Автор вопроса
    Антон,

    я ответил

    В App.vue у вас корневой компонент (разметка и код)



    Простите, не так понял. Значит писать в app.vue и всё, как обычно, и , получается, внутри export default ?
  • Как начать работать во Vue? Где писать код?

    @boga-net Автор вопроса
    Антон к тому же я уже не понимаю, нужно ли писать код в export default или нет. Ну и у нас есть два дива с id="app" в файле index.html и в файле app.vue - это тоже путает

    Значит в main.js сам код не писать, правильно понимаю ? Или всё же лучше создать отдельный компонент, подклчюить, зарегистрировать его и писать в нём?
  • Как начать работать во Vue? Где писать код?

    @boga-net Автор вопроса
    Антон

    Да, но я уточнил, что мне не нужно создавать компоненты. Я хочу просто попрактиковаться и пока что не хочу усложнять. Пока что просто в одном файле, как в классических примерах. Попробовать все эти простые штуки с v-for, click и т.д.

    В последнем видео, которое я смотрю, у автора есть index.html с подключением Vue через CDN и файл main.js - здесь всё просто и с этим проблем нет. Он указывает в js файле

    const app = new Vue ({
    el: '#app',
    template: ``
    и т.д.


    и это сразу рендерится в див #app. Когда я хочу то же самое повторить, но уже с установленным Vue через npm - я попросту теряюсь и не знаю, где это писать ) В каком из этих трёх файлов. Я экспериментировал и пробовал во всех, но вскоре понял, что что-то делаю не так. Хочу всё таки разобраться, что к чему и для чего, где что писать и уже учиться не с подключённым Vue в index.html

    Пробуя то же самое в App.vue (код, который выше) - ничего не рендерится. И тут уже я не понимаю разницу (не могу переписать то, что написано ( в видео уроке ) в классическом примере), потому что не ведаю, что куда. Спасибо за понимание
  • Кто скажет как решить проблему с sass?

    @boga-net
    Это не ответ на вопрос и не совсем в тему, но если что, могу посоветовать пойти более быстрым лёгким путём, получив тот же результат и установить Koala. Конвертация .sass и .scss в css