Использование связующего модуля всегда будет лучше по многим причинам, одна из которых - ремонтопригодность.Но если вы не можете, попробуйте зарегистрировать компонент в файле сценария, например так:
Vue.component('navigation', {
template: `
<p>Click on the Menu Icon to transform it to "X":</p>
<div v-bind:class="[ 'container', { 'change': active } ]" @click="myFunction">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
</div>
`,
data() {
return {
active: false
}
}
methods: {
myFunction(x) {
this.active = !this.active;
// do your other logic here if need be
}
}
})
const app = new Vue({
el: '#app',
data() {
return {
products: [],
showMobileMenu: false,
productHeadline: 'Product Flow Tool'
}
},
computed: {
totalProducts() {
return this.products.reduce((sum, product) => {
return sum + product.quantity
}, 0)
}
},
created() {
fetch('https://www.fennefoss.dk/sample.json')
//fetch('./sample.json')
.then(response => response.json())
.then(json => {
this.products = json.products
})
}
})
index.html
<div id="app">
<navigation></navigation>
</div>
Вам все равно нужно поместить файлы CSS где-нибудь, хотяИ это хорошая часть использования модуля связывания - для включения отдельных файловых компонентов .