kaola-fed/megalo

吐槽几个问题哈

Open

#149 opened on Jan 28, 2019

View on GitHub
 (6 comments) (0 reactions) (0 assignees)JavaScript (1,631 stars) (122 forks)batch import
help wanted

Description

  1. v-show 在自定义组件或label标签上使用时无效。

  2. 貌似不能通过Vue.Component注册全局组件。

  3. 在App.vue中,钩子函数中无法通过this直接访问定义过的属性,而需要通过this.rootVM.$options才能拿到 ( getApp()返回的对象中也没有之前定义过的东西,这让旧的代码无法兼容啊)。 示例如下:

// App.vue
export default {
  onLaunch() {
    console.log(this.foo); // 拿不到这个foo呀
    console.log(this.rootVM.$options.foo); // 终于拿到了,但是太麻烦了吧!!!
  },
 foo: 'foo'
});

// index.js
const app = getApp();
console.log(app.foo); // 拿不到这个foo
console.log(app.rootVM.$options.foo); // 拿到了,麻烦了点吧!!!

// 如果要优化的话可能是修改doCallHook这个函数吧
function doCallHook (vm, hook, options) {
  var handlers = vm.$options[hook] || [];
  if (!Array.isArray(handlers)) {
    handlers = [handlers];
  }
  return handlers.reduce(function (res, handler) {
    if (vm.$options.mpType === 'app') {
      return handler.call(vm.$options, options)  // 整这么三句吧
    }
    return handler.call(vm, options)
  }, undefined)
} 

Contributor guide