Мы можем сделать вю.приложение js без.компонент расширения vue и webpack?
Примечание: можем ли мы написать vue.JS большое приложение без использования компилятора для кода, как в настоящее время я вижу все примеры использования webpack теперь, чтобы сделать vue.код js совместимый для браузера .
Я хочу сделать vue.js
приложения без webpack
и без . Возможно ли это? если это возможно, вы можете предоставить ссылку или дать пример использования маршрутизации в этом случае.
как мы делаем компонент в можно сделать компонент в .js
расширение и использование приложения, как мы делаем в angular 1, где мы можем сделать все приложение без какого-либо транс-компилятора для преобразования кода.
можно сделать это только в html, css, js-файле и без webpack.
что я сделал . .js
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>vueapp01</title>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
main.js этот файл добавлен во время загрузки webpack
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})
App.vue
<template>
<div id="app">
<img src="./assets/logo.png">
<a href="#/hello">Hello route</a>
<a href="#/">Helloworld route</a>
{{route}}
<router-view/>
<!-- <hello></hello> -->
</div>
</template>
<script>
export default {
name: 'App',
data () {
return {
route : "This is main page"
}
}
}
</script>
маршрутизатор
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import Hello from '../components/Hello'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
},
{
path: '/hello',
name: 'Hello',
component: Hello
}
]
})
я сделал что-то подобное . Можем ли мы сделать это только html , css, js-файл только с не webpack для компиляции кода . Как мы делаем в angular 1 .
спасибо
3 ответов
как указано в этом jsFiddle:http://jsfiddle.net/posva/wtpuevc6/, вы не обязаны использовать webpack или .файлы vue.
код ниже не от меня, и весь кредит идет этому создателю jsFiddle:
создать индекс.формат html файл:
<script src="https://npmcdn.com/vue/dist/vue.js"></script>
<script src="https://npmcdn.com/vue-router/dist/vue-router.js"></script>
<script src="/js/Home.js"></script>
<script src="/js/Foo.js"></script>
<script src="/js/router.js"></script>
<script src="/js/index.js"></script>
<div id="app">
<router-link to="/">/home</router-link>
<router-link to="/foo">/foo</router-link>
<router-view></router-view>
</div>
дома.js
const Home = { template: '<div>Home</div>' }
Foo.js
const Foo = { template: '<div>Foo</div>' }
маршрутизатор.js
const router = new VueRouter({
mode: 'history',
routes: [
{ path: '/', component: Home },
{ path: '/foo', component: Foo }
]
})
.js
new Vue({
router,
el: '#app',
data: {
msg: 'Hello World'
}
})
оцените рамках...
просто sidenote:.vue
файлы действительно потрясающие, вы обязательно должны попробовать их, если не использовать их не является требованием
Я начал изучать vue.js также, и я не знаком с webpack и прочее, и я также хотел все еще отделять и использовать .Vue файлы, как это делает управление и код чище.
Я нашел эту библиотеку: https://github.com/FranckFreiburger/http-vue-loader
и пример проекта с использованием его: https://github.com/kafkaca/vue-without-webpack
Я использую его, и он, кажется, работает нормально.
конечно, вы можете. Мы сделали проект с Vue, и у нас было несколько проблем во время компиляции .vue
файлы.
Поэтому мы переключились на структуру с тремя отдельными файлами.
но имейте в виду, что вам нужно webpack
в любом случае. Идея Vue состояла в том, чтобы разделить огромные проекты на компоненты, поэтому используя шаблон внутри .js
файл это довольно нормально.
Так что взгляните на
используя эти модули вы можете напишите что-нибудь вроде этого:
компонент.js
// For importing `css`. Read more in documentation above
import './component.css'
// For importing `html`. Read more in documentation above
const templateHtml = require('./component.html')
export default {
name: 'ComponentName',
components: { /* your components */ },
mixins: [/* your mixins */ ],
template: templateHtml,
computed: .....
}
компонент.в CSS
#header {
color: red
}
компонент.HTML-код
<div id="header"></div>
но
вы должны знать, что HTML-файл должен быть написан так же, как и я, у вас будет это в template
собственность.
кроме того, взгляните на это РЕПО, возможно, вы найдете что - то полезное вот!--9-->
Vue-html-loader. Это вилка от html-loader
основной командой Vue.