【发布时间】:2019-02-11 08:03:49
【问题描述】:
为什么 CLI/3 生成的 VUE UI main.js 代码与旧语法不同,它的组成部分是什么,它是如何工作的?
sync(store, router) // for vuex-router-sync
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
曾经
sync(store, router) // for vuex-router-sync
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
store,
template: '<App/>',
components: { App }
})
我还读到了第三种语法,使用Vue.extend(... 而不是new Vue( 来使用没有 vuex-router-sync 的路由器
为什么我现在必须添加渲染,h 函数替换了什么,为什么选择那个字母,$mount 语法在做什么和替换,为什么选择 $mount 语法?
另外,如果这不是一个单独的主题:新语法是否真的做了Vue.extend() 所做的事情,如果不是,我什么时候需要使用Vue.extend() 而不是new Vue()?
【问题讨论】:
-
我正在关注许多关于旧 VUE 主题的教程,并尝试使用新的 CLI/3 来实现它们。了解不同的语法以及选择它的原因将有助于现在使用最新版本学习 VUE 的任何人,而不会浪费数百个 Youtube 小时和在 VUE 团队之外编写的教程文档。谢谢。
-
好吧,我的大部分问题,似乎,is answered here,部分和不情愿地由 VUE 团队成员(因为它在问题中而不是在他们的论坛中)和部分由其他人提出。该问题的作者写道,他在 StackOverflow 上因为这个问题被否决了,事实证明,这个问题非常受欢迎和需要。我从那里明白:为什么选择 h 以及它取代了什么,为什么选择 $mount 以及它取代了什么。如果这不是一个单独的问题,仍然不确定
render和extend。
标签: javascript vue.js ecmascript-6 vuex vue-cli-3