问题
我正在尝试将prop传递给我的根构造函数。我理解propsData
is the way to go:
var appComponent = Vue.component('app', require('./components/app/app.vue.html'));
new Vue({
el: '#app-root',
router: new VueRouter({ mode: 'history', routes: routes }),
propsData: { test: 'hi!' },
components: { appComponent },
render: h => h('app')
});
这是收到道具的AppComponent
:
export default class AppComponent extends Vue {
@Prop()
test: string;
mounted() {
console.log('test = ' + this.test);
// result: test = undefined
// expected: test = 'hi!'
}
}
我尝试过的事情
使其在开发中工作的唯一方法(不在生产中)是:
test: string;
beforeCreate() {
this.test = this.$root.test;
}
它适用于开发(windows),但在部署(linux)中我得到了这个打字稿错误:
ERROR in [at-loader] ClientApp/components/app/app.ts:14:34
TS2339: Property 'test' does not exist on type 'Vue'.
Here是另一篇谈论此事的帖子。
答案 0 :(得分:4)
您可以在data
对象中传递props
,这是createElement
别名h
函数在render
选项中所采用的第二个参数
render: h => h('app', { props: { test: 'hi!' }})