共计 867 个字符,预计需要花费 3 分钟才能阅读完成。
OWL 组件介绍
OWL 组件与通常的 Odoo JS 类大不相同,它们具备您相熟的自定义继承零碎。
首先它们是 ES6 类,如果您不相熟 ES6 类,能够先学习 ES6 的内容
ES6 类基本上是 JavaScript 中现有的基于原型的继承的语法糖。在最根本的层面上,ES6 Class
是一个合乎基于原型继承的构造函数。ES6 类依然有 Object.prototype!
基于类和基于原型的继承之间最重要的区别在于,类定义了能够在运行时实例化的类型,而原型自身就是一个对象实例。
要应用 Odoo 14 现有的 OWL 组件,先理解一些根本的概念。
class Component {constructor(name) {this.name = name;}
render() {console.log(`${this.name} renders itself.`);
}
// Getter/setter methods are supported in classes,
// similar to their ES5 equivalents
get uniqueId() {return `${this.name}-test`;
}
}
能够应用关键字继承类 extends
并用 super
调用父函数。
class MyBetterComponent extends Component {constructor(name) {super(name); // call the super class constructor and pass in the name parameter
}
render() {console.log(`${this.name} with id ${this.uniqueId} render itslef better.`);
}
}
let comp = new MyBetterComponent('MyBetterComponent');
comp.render(); // MyBetterComponent with id
这是规范的 ES6 super
关键字,不要将它与 _super
框架内构建的 Odoo 函数混同。
Odoo 中 OWL 组件的大部分修补、扩大、笼罩都会用到这些基础知识!
正文完