vue-create-root
🍭 命令式驱动组件, 比如this.$alert('你好vue!');
示例
默认命令
初始化后,通过this.$createRoot可以渲染任意组件.
// main.js中初始化Vue; // 组件中调用 methods { // 此处Com为任意组件 this; }
自定义命令
// main.js中初始化Vue;// 此处Com为任意组件Vue; // 组件中调用 methods { this; }
安装
npm i -S vue-create-root
更多例子
监听事件($on)
$createRoot运行后返回vue实例, 所以我们可以用实例上的$on方法监听组件内部事件.
// xxx.vueconst root = this;root; root; // 如果愿意也可以连续的$onroot; // 我们自定义的命令也一样this;
无论多少次调用, 都只想渲染一个组件, 单例模式? (isSingle)
// main.jsVue; // xxx.vue// 页面只会渲染出"你好ts"const _uid:id1 = this;const _uid:id2 = this;id1 === id2 // true
想要类似饿了么 / iView的那种"this.$Message.success()"? (as)
// main.jsVue; // xxx.vuethis$Message;
有时候我的传的对象只有一个值, 还要写对象吗? (onProp)
// main.jsVue; // xxx.vue// 配置后, 以下2种方式均可以使用this;// 等价于this;
销毁($remove)
单例
单例就很简单了, 直接$remove().
this;this;this$alert;
非单例
$remove()会按照生成顺序, 从后想前删除, 先删除刚刚生成.
const _uid:id1 = this;const _uid:id2 = this;const _uid:id3 = this; // 删除"你好angular"的实例this$dialog; // 删除"你好vue"的实例this$dialog;