作家
登录

我们为什么以及是如何从Angular.js迁移到Vue.js?

作者: 来源: 2017-11-06 14:21:57 阅读 我要评论

  •       el: '#v-wrapper',    
  •       components: {    
  •           ...    
  •       },    
  •       data: {    
  •       }    
  •     });    
  •   }    
  • ]);  
    1. <!-- `users/edit.html.erb` -->    
    2.  
    3. <div ng-controller="UserEditCtrl">      
    4.   <div id="v-wrapper">    
    5.     <!-- vuejs logic goes here... -->    
    6.     <input v-model="username" placeholder="Username" />    
    7.     ...    
    8.   </div>    
    9. </div>]);  

    我们在应用中惹人了 Vue 的逻辑,却不须要改变任何相干应用的前端构造。这极大年夜程度的赞助我们降低在迁徙过程中产生缺点的风险,我们可以花 1-2 个小时敏捷地将一小部分 AngularJS 实现的器械转换为 VueJS 实现,然后测试并安排,不消担心它会导致回归缺点。

    我们起首须要找到一个 AngularJS 中大年夜量应用的 $http 办事的替代品。我们直接应用了 axios。我们不再直接应用 $http,但我们环绕它进行了抽象封装,以使修改变得异常简单。

    然后,我们像如许定义了大年夜量的 AngularJS:

    1. // users.js   app.service('Users', ['$http''Ajax',      
    2.   function ($http, Ajax) {    
    3.     this.create = function(user) {    
    4.       // ...    
    5.     }    
    6.   }    
    7. ]); 
    8. ]);  

    应用 ES6 类语法代替就好:

    1. // users.js.es6   export default class Users {      
    2.   static create(user) {    
    3.     // ...    
    4.   }    
    5. ]);  

    如不雅其它控制器中应用有 Angular 代码在应用这些办事,我们会复制这些办事并应用 ES6 类语法来实现,同时保持原有的 Angular 版本,直到不再有 Angular 代码应用它们为止。这会在短时光内让代码出现反复,但我们只须要当心一点,在代码中多写些注释来接洽关系两个版本。

    3、应用 VueJS 组件代替 AngularJS 控制器

    完成上述两点之后,一些 AngularJS 控制器可以完全迁徙到 VueJS,这和膳绫擎的第 2 步类似,我们应用 ES6 语法来代替 app.controller() 定义。不过此次,我们应用 Vue 的单文件组件:

    文件:user_edit.vue

    1. <template>      
    2.   <div>    

        推荐阅读

        Apple Watch出现新Bug 一问Siri天气就重启

      我们信赖苹不雅会很快经由过程更新的方法解决这个问题,但如今对Apple Watch用户来说,临时照样用Siri来询问气象比较好。 【编辑推荐】比Apple Watch更惊艳的交互技巧:Project Soli隔空感应Apple Watch>>>详细阅读


      本文标题:我们为什么以及是如何从Angular.js迁移到Vue.js?

      地址:http://www.17bianji.com/lsqh/38491.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)