Vue进阶,vue构造函数

  Vue进阶,vue构造函数

  本文主要介绍了Vue的高级构造属性,并从四个方面进行了说明:Directive、Mixin、Extensions继承、provide和inject。感兴趣的延伸一下,请看一下。

  

目录

   1、指令自定义指令2、Mixin混合3、扩展继承4、提供和注入

  

1、Directive 自定义指令

  在Vue框架下的代码中,很少使用原生DOM操作。那是因为所有的原生DOM操作都封装在Vue的指令中,比如我们前面看到的div v-text=xxx/div指令。事实上,它的内部运作是:

  div.innerText=xxx//当然这里的div是获取的DOM元素。

  Vue将原生DOM操作封装到一条指令中。如果那个元素要使用指令,可以直接在HTML模板中的element标签中作为属性使用,方便引入,减少重复。

  但是,Vue毕竟不能提前把所有的DOM操作都考虑进去,封装成相应的指令。有些DOM操作在实际使用的时候还得让开发者知道。因此,Vue提供了自定义指令,大致可以分为以下两种:

  自定义命令类似于自定义组件,也可以分为全局命令和局部命令。以下是定义打印字符Y的命令v-y的示例:

  全球指令

  全局属性注册在Vue提供的特定函数中:

  Vue.directive(y ,{

  插入:函数(el) {

  el.addEventListener(click ,()=console . log( y ));

  }

  });

  本地指令

  它只能在定义该指令的模板中使用。

  它可以在模板属性的完整版本中。

  主页. js

  新Vue({

  模板:` 1

  分区v-y

  点击/按钮

  /div

  `,

  指令:{

  y:{

  插入:函数(el) {

  el.addEventListener(click ,()=console . log( y ));

  }

  }

  }

  }).$ mount( # app );

  或在不完整版本的导出默认值{}中。vue文件。

  app.vue

  模板

  差异

  按钮v-y点击/按钮

  /div

  /模板

  脚本

  导出默认值{

  指令:{

  y:{

  插入:函数(el) {

  el.addEventListener(click ,()=console . log( y ));

  }

  }

  }

  };

  /脚本

  方向选项

  指令中有五个功能属性。

  {

  Bind: function (El,info,vnode,old vnode) {},//元素在内存中创建时执行。

  Inserted: function(参数同上){},//元素插入页面时执行。

  更新:函数(参数同上){},

  更新:函数(参数同上){},

  Unbind: function(参数同上){ }//元素消失时执行。

  }

  函数的参数中El指的是调用指令的元素,info包含了所有的信息,需要的时候在info中寻找。

  

2、Mixin 混入

  混合的主要目的是减少构造选项的重复。您可以提取重复的构造选项,并将它们放在单独的*中。js文件,然后用import导入它们,然后通过mixins属性在构造选项中混合它们。

  民信是智能混合,会根据添加的混合和当前的选项进行智能混合,而不是简单的复制。

  

3、Extends 继承

  继承minxin函数类似,但是extend更抽象。两者都简化了构造选项的重复。extend可以在Vue原有外壳的基础上添加自己定义的属性作为固定属性,然后在创建Vue对象时用它创建一个继承Vue的自定义类MyVue。

  MyVue.js

  const MyVue=Vue.extend({

  民信:[日志]

  });

  导出默认MyVue

  

4、provide 和 inject

  父级提供共享数据或方法。

  {

  //.

  提供(){

  返回{

  xx: this.changexx,

  yy: this.changeyy

  }

  },

  方法:{

  changexx(){

  //.

  },

  changeyy(){

  //.

  }

  }

  }

  后代注入一些东西来修改数据。

  {

  注入:[changexx , changeyy]

  }

  的功能。同步修饰符类似于。sync修饰符,但它比。同步修改器。

  以上是对Vue高级构造属性的详细解释。更多关于Vue高级建造属性的信息,请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: