.documentBody.documentBodyOld + .documentBody.documentBodyOld {
display: none
}
document
.querySelectorAll('.documentBody.documentBodyOld + .documentBody.documentBodyOld')
.forEach(node => node.remove());
function compileJade(done) {
gulp.src('src/jade/*.jade')
.pipe(plumber())
.pipe(jade())
.pipe(gulp.dest('build/'))
.pipe(server.reload({ stream: true }));
done()
}
function compileScss(done) {
gulp.src([
'src/sass/*.scss',
'!src/sass/mixins.scss',
'!src/sass/normalize.scss',
'!src/sass/variable.scss'
])
.pipe(plumber())
.pipe(sass({ outputStyle: 'compressed' }).on('error', sass.logError))
.pipe(postcss([
autoprefixer({
browsers: [
"last 1 version",
"last 2 Chrome versions",
"last 2 Firefox versions",
"last 2 Opera versions",
"last 2 Edge versions"
],
grid: true
})
]))
.pipe(gcmq())
.pipe(minify())
.pipe(gulp.dest('build/css'))
.pipe(server.reload({ stream: true }));
done()
}
function compileScripts(done) {
gulp.src('src/js/*.js')
.pipe(plumber())
.pipe(jsmin())
.pipe(gulp.dest('build/js/'))
.pipe(server.reload({ stream: true }));
done()
}
function makeHash(done) {
gulp.src('build/index.html')
.pipe(hash())
.pipe(gulp.dest('build'));
done()
}
function watcher(done) {
server.init({
server: 'build'
});
gulp.watch('src/sass/**/*.scss', gulp.series(compileScss, makeHash));
gulp.watch('src/**/*.jade', gulp.series(compileJade, makeHash));
gulp.watch('src/js/*.js', gulp.series(compileScripts, makeHash));
done()
}
module.exports = {
default: watcher,
watcher,
build: gulp.series(
compileJade,
compileScss,
compileScripts,
makeHash
),
jade: compileJade,
style: compileScss,
script: compileScripts,
hash: makeHash
}
// i18n.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import english from '@/lang/english.js'
import russian from '@/lang/russian.js'
Vue.use(VueI18n)
let messages = {
en : english,
ru : russian,
}
export default new VueI18n({
//locale: 'ru',
locale: window.localStorage.Language || 'ru',
fallbackLocale: 'ru',
messages
})
// router.js
...
import i18n from '@/path/to/i18n.js'
...
{
path: '/about',
component: About,
meta: { title: i18n.t('about') }
}
// main.js
import Vue from 'vue'
import App from './App'
import Vuetify from 'vuetify'
import router from './router'
import axios from 'axios'
import store from './store';
import i18n from '@/path/to/i18n.js'
Vue.config.productionTip = false
Vue.use(Vuetify)
Vue.axios = Vue.prototype.$http = axios.create({
baseURL: 'http://localhost:5000/api'
})
/* eslint-disable no-new */
new Vue({
el: '#app',
i18n,
router,
store,
components: { App },
template: '<App/>',
created() {
this.$vuetify.theme.primary = '#01579B'
}
})
&&
вычисляет слева направо каждый из своих операндов. Результат вычисление операнда приводится к булевому типу и если он true, переходит к вычислению следующего операнда. Операция повторяется до тех пор, пока результат вычисления очередного операнда не будет false, если это так, то возвращается результат вычисления данного операнда и цепочка обрывается.1 && 2 && 3 && 4 && 5 // 5
1 && 2 && 0 && 4 && 5 // 0
confirm(1) && confirm(2) && confirm(3)
||
похожая картина. Отличие в том, что цепочка операндов будет выполняться до первого истинного операнда1 || 2 || 3 || 4 || 5 // 1
0 || false || !!0 || 5 || true || !!1 //5
confirm(1) || confirm(2) || confirm(3)
&&
и ||
не возвращают true или false. Они возвращают результат вычисления одного из своих операндов. <body>
<div><span class="span" data-genres="a, b, c"></span></div>
<div><span class="span" data-genres="d, e, f"></span></div>
<div><span class="span" data-genres="g, h, i"></span></div>
<div><span class="span" data-genres="j, k, l"></span></div>
<script>
function addGenres(genres, container) {
genres.split(', ').forEach(genre => {
const linkNode = document.createElement('a');
const textNode = document.createTextNode(genre);
linkNode.setAttribute('href', `/category/${genre}`);
linkNode.setAttribute('class', 'content__box__genre--links');
linkNode.appendChild(textNode);
container.appendChild(linkNode);
})
}
</script>
<script>
document.querySelectorAll('.span').forEach(el => {
addGenres(el.dataset.genres, el)
})
</script>
</body>
const comp = Vue.component('comp', {
...
data() {
return state
},
...
})
const state = Vue.observable({ z: false });
const comp = Vue.component('comp', {
...
<body>
...
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="/js/bundle.js"></script>
<script src="/js/script.js"></script>
</body>
// script.js
$.doSomething()
У меня проблема с 3 и 6 положением:если стили трогать нельзя, то не сможете вы их выстроить как надо, вот хоть убейтесь. единица может быть только слева или справа, посередине не получится.
.test {
display: inline-block;
}
// 3
<div class="wrap oh">
<div class="test fl">1</div>
<div class="test no">2</div>
<div class="test fr">3</div>
</div>
// 5
<div class="wrap oh">
<div class="test no">1</div>
<div class="test fr">2</div>
<div class="test fl">3</div>
</div>
output.library
output.libraryExport
output.libraryTarget
вот здесь примерmyComponent.get('/search', {
params: {
key: value
},
ignore404: true
})
axios.interceptors.response.use(
response => response,
error => {
const {
response: {
status
},
config: {
ignore404
}
} = error
if (status === 404) {
if (!ignore404) {
router.push({name: 'NotFound'})
}
return
}
}
)
.setAttribute()
?element.setAttribute().setAttribute().setAttribute().setAttribute()...
что бы вот так можно было писать, нужно чтобы .setAttribute() возвращал element, но этот метод ничего не возвращает, поэтому чейнинг здесь недопустим, поэтому только так:element.setAttribute()
element.setAttribute()
element.setAttribute()
...
mapCreated: function ($map) {
const _this = this;
// далее идет код
}
let currentCoords
на _this.currentCoords
mapCreated: function ($map) {
const _this = this
let pointOnMap = new ymaps.Placemark([55.7204,37.6200], {}, {
draggable: true
});
$map.geoObjects.add(pointOnMap);
this.map = $map;
let coords = [55.7204,37.6200]
pointOnMap.events.add("dragend", function (e) {
let coords = this.geometry.getCoordinates();
_this.currentCoords = coords[1].toFixed(6) + ',' + coords[0].toFixed(6);
}, pointOnMap);
}