Короткий вопрос, который у меня есть: основываясь на приведенном ниже коде, , почему я должен 'импортировать' компоненты ниже, чтобы мой код заработал дважды ?
Я работаю вдовольно замкнутая среда, поэтому в данный момент нельзя использовать SFC Webpack или .vue или npm (для любых целей и задач).
Я собрал рабочую версию небольшого vue-приложения с использованием машинописных файлов, но растерялся, почему он работал: S.
Мне нужно импортировать файл компонента, , а затем требовать его как компонент. Я бы хотел, если смогу, это исправить, так как мы будем катитьсяэто как POC с разработчиками, которые также только изучают Vue, поэтому я хотел бы избежать плохих практик с самого начала, если бы мог.
index.ts
import * as Vue from "vue";
import * as Apple from "./App"; <-----
Vue.component('apple2', Apple.default); <----- wat?
let v = new Vue({
el: "#app",
components: { Apple}, <-----
template: `
<div>
<apple2/> <-----
</div>`,
data: {
name: "World"
},
});
Приложение.ts
import * as Vue from "vue";
import * as fred from "./Hello"; <----
Vue.component('fred2', fred.default); <----
export default Vue.extend({
name: 'Apple',
template: `
<div>
<fred2 :name="name" :initialEnthusiasm="4"/> <-----
</div>`,
data() {
return { name: "World" }
},
components: { fred } <-----
});
Index.html
<!doctype html>
<html>
<head>
<script src="scripts/vue.min.js"></script>
<script data-main="scripts/build/index" src="scripts/lib/require.min.js">
</script></head>
<body>
<div id="app"></div>
</body>
tsConfig
{"compileOnSave": true,
"compilerOptions": {
"module": "amd",
"moduleResolution": "node",
"noImplicitAny": true,
"noEmitOnError": false,
"outDir": "./scripts/build",
"removeComments": false,
"sourceMap": true,
"target": "es5",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true
},
"exclude": [
"node_modules",
"wwwroot"
],
"include": [
"./scripts/**/*"
]
}