我们为什么以及是如何从Angular.js 迁移到 Vue.js?
一些背景介绍
·
·
· Angular第三方组件(uib-modal,ui-select,…)
我们在 Angular 中遇到的问题
·
· Angular 的文档不太好:
·
考虑不同的框架
Angular 2
ReactJS
AngularJS 的使用基于 HTML 的模板系统,而 ReactJS 是用的 JSX。我们不能找到办法在迁移的过程中让两种技术很好的并存。
EmberJS
EmberJS 不是一个 JS 库,而是一个 Web 应用框架,我们必须用基于 EmberJS 重写所有东西。
我们为什么选择了 VueJS:逐步迁移
Vue 采用了与 ReactJS 相似的技术,基于组件,属性下行事件上行等。它与 AngularJS 在模板引擎方面有着惊人的相似。
我们是怎么进行逐步迁移的:
1. 把 AngularJS 控制器逻辑转换到 VueJS
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// user_edit_controller.js.es6` import Vue from 'vue'
app.controller('UserEditCtrl', ['$scope', '$http', 'Ajax', 'Util', 'Modals', function ($scope, $http, Ajax, Util, Modals) { let vapp = new Vue({ el: '#v-wrapper', components: { ... }, data: { } }); } ]); |
JavaScript
1 2 3 4 5 6 7 8 9 |
<!-- `users/edit.html.erb` -->
<div ng-controller="UserEditCtrl"> <div id="v-wrapper"> <!-- vuejs logic goes here... --> <input v-model="username" placeholder="Username" /> ... </div> </div> |
2. 把 AngularJS 服务转换为 ES6 模块
JavaScript
1 2 3 4 5 6 7 8 |
// users.js app.service('Users', ['$http', 'Ajax', function ($http, Ajax) { this.create = function(user) { // ... } } ]); |
JavaScript
1 2 3 4 5 6 |
// users.js.es6 export default class Users { static create(user) { // ... } } |
3. 使用 VueJS 组件代替 AngularJS 控制器
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<template> <div> <!-- vuejs logic goes here... --> <input v-model="username" placeholder="Username" /> ... </div> </template>
<script> import Users from 'users.js.es6' export default { data: { }, methods: { }, mounted() { // initializing }
}; </script> |
4. 为 Rails 控制器/视图添加安装入口
JavaScript
1 2 3 |
<div class="v-user-edit"> <user-edit></user-edit> </div> |
JavaScript
1 2 3 4 5 6 7 8 |
import UserEdit from 'user_edit.vue' let vueConfig = { el: '.v-user-edit', components: { UserEdit } }; new Vue(vueConfig); |
总结
·
·
·

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
函数计算安装依赖库方法小结
在通常的编程实践中,项目,库和系统环境需要协同安装和配置。而函数计算的运行环境是预制的,舍弃一些灵活性以换取更好并发效率和系统安全性。当系统和代码在运行期变成只读后,原本系统层面依赖库的安装操作,转移到项目内部。而函数计算作为一种新兴的平台,安装工具还没来得及应对这些变化。本文的目的就是从已有的工具中找到一些适用的方法,以较少手工操作,解决安装依赖库到项目内的问题。 函数计算开发时常需要安装的依赖包分为两类,一类是通过 apt 包管理工具安装的 deb 软件包。另一类是具体语言环境包管理工具(如 maven, pip 等)安装的包。下面我们先分析一下不同语言环境的包管理器。 包管理器的安装目录 目前函数计算支持的语言运行环境为:Java/Python/Nodejs。这三种语言对应的包管理工具分别对应为 maven/pip/npm。下面我
-
下一篇
java并发面试常识之LinkedBlockingQueue
谈到ArrayBlockingQueue的特色就是循环队列,然后一把锁,2个条件,完成了功能。本来以为LinkedBlockingQueue也是这样的,结果和预期不一样,LinkedBlockingQueue利用了链表的特点,使用了两把锁,两个条件来控制。是一个锁分离的应用,下面就说说,他的实现,以及为什么ArrayBlockingQueue就不适合锁分离。 主要成员变量 private final ReentrantLock takeLock = new ReentrantLock(); private final Condition notEmpty = takeLock.newCondition(); private final ReentrantLock putLock = new ReentrantLock(); private final Condition notFull = putLock.newCondition(); private final AtomicInteger count = new AtomicInteger(); 除了两个锁,两个条件外,我这里专门列...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL数据库在高并发下的优化方案
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker容器配置,解决镜像无法拉取问题