提示:
此文中介绍的方法已过时,建议查看文档:
九游会官网登录入口网页-ag8九游会j9登录入口进行前端的二次开发,介绍了创建九游会官网登录入口网页-ag8九游会j9登录入口 component的方式,基于react和vue的模式
vue-cli是vue官方提供的cli工具,用于为应用快速搭建繁杂的脚手架。本章我们介绍使用vue-cli工具在node,js环境下,vue和o2集成应用开发,并在o2平台的webserver下运行。
本文适用于如下版本:
九游会官网登录入口网页-ag8九游会j9登录入口版本要求:5.1及以上版本;
vue版本:本文撰写时,vue版本是2.6.11。(更低的版本未经验证)
vue-cli版本:本文撰写时,vue-cli版本是4.4.4。
vue cli 需要 node.js 8.9 或更高版本 (推荐 8.11.0 )。在正确安装号node.js和npm或yarn后,可以使用下列任一命令全局安装vue-cli:
npm install -g @vue/cli # or yarn global add @vue/cli
安装之后,你就可以在命令行中访问 vue 命令。你可以通过简单运行 vue,看看是否展示出了一份所有可用命令的帮助信息,来验证它是否安装成功。
你还可以用这个命令来检查其版本是否正确:
vue --version
如果您希望将应用部署在o2服务器的webserver下,那么就可以参考下面的例子。
运行以下命令来创建一个新项目,名为vue-app:
vue create vue-app
根据提示来选取所需要的特性,本例中使用默认选项。安装完成后,vue会自定创建好整个目录结构:
本例中,我们将嵌入一个o2平台数据中心中的视图,展现内容管理信息;并创建两个按钮,用于创建信息文档和打开九游会官网登录入口网页主页。
添加o2脚本引入
在public/index.html的head中添加o2脚本引入:
为了方便后续引入,我们在src下创建一个o2.js,添加以下代码:
let o2 = window.o2; let layout = window.layout; export {o2, layout};
修改src/main.js文件如下:
import vue from 'vue' import app from './app.vue' //引入o2的layout对象 import {layout} from "./o2"; vue.config.productiontip = false; //当o2载入完成后创建vue根组件 layout.addready(function(){ new vue({ render: h => h(app), }).$mount('#app') });
修改src/app.vue文件如下:
信息中心
app.vue是一个vue组件,文件分为三部分:其中<template>部分定义了组件的模板;<style>部分定义组件样式;<script>部分实现组件的逻辑。
在模板中,我们使用了<o2-view>标签,将由o2-view组件负责渲染,给o2-view传入了两个参数:app="内容管理数据"和name="所有信息",我们将在o2-view组件中使用这两个参数,用于展现“内容管理数据”这个数据应用下的“所有信息”视图。您需要现在o2平台里创建好对应的视图,如果需要展现其他数据应用的其他视图,需要修改这两个值。
我们创建了两个button,通过@click分别绑定了createdocument和openhomepage两个方法,分别用于新建内容管理文档和打开九游会官网登录入口网页主页应用
我们在components部分引用了o2view组件,下面我们就要创建这个组件。
删除src/components/目录下的原有.vue文件,然后新建o2-view.vue文件,输入以下代码:
在o2-view组件中,我们主要做的事是,在vue组件挂载后,将o2的视图组件,再挂载到o2-view组件的根dom对象。
当然,这里我们要在我们的o2服务器上创建好数据应用和视图,对应本例中,就是“内容管理数据”应用下的“所有信息”视图。
我们完成了上述开发工作,就可以编译并运行我们的应用了。
由于我们要将vue应用放到o2的web服务器的目录下,而非根路径下,所以我们需要简单配置以下编译的路径。再vue应用目录下创建vue.config.js文件,输入以下代码:
module.exports = { publicpath: "." };
将编译后的路径引用使用相对路径。
在当前项目路径下,使用以下任意一条命令编译项目:
npm build # or yarn build
出现类似下面的信息,表示编译成功:
如果您未登录到服务器,会出现登录页面,登录后就可以看到实现的效果了。
如果您将您的应用部署到服务器的其他目录,如custom/vue-app下,那么您需要在src/o2.js文件中增加一行代码:o2.base = "../";
//src/o2.js let o2 = window.o2; let layout = window.layout; o2.base = "../"; export {o2, layout};
至此,我们已经可以在o2平台的框架下,使用vue开发应用了。
虽然我们可以使用react开发o2应用,但上述模式在我们每次修改代码后,需要运行build命令,并手工上传到服务器,在开发比较复杂的应用时,还是比较影响效率的。下面价绍两种方式来应对这种情况。
您可以在本地运行服务器,然后直接在服务器的webserver目录下创建项目。然后您必须修改vue配置,使其编译到正确的路径。我们要修改项目目录下的vue.config.js文件:
module.exports = { publicpath: ".", outputdir: "../vue-app" };
然后每次运行编译后,vue会将编译后的应用生成在webserver/vue-app/目录下,我们直接通过http://locahost/vue-app就可以查看运行结果。
当然,为了节省我们部署远程服务器的时间,我们可以使用javascript打包工具,自动完成这个过程,这里我们使用gulp,通过ftp或sftp来进行自动化部署到远程服务器。
这种方式不需要您本地运行o2服务器,但您必须有一台远程服务器,并可以通过ftp或sftp连接到服务器的webserver。
按上述方式创建好应用,然后我们安装gulp环境:
npm i -g gulp-cli
安装gulp以及gulp相关插件:
npm i gulp gulp-ftp gulp-sftp-up4 gulp-run -save-dev
在项目根目录新建gulpfile.js文件:
var gulp = require('gulp'), ftp = require('gulp-ftp'), sftp = require('gulp-sftp-up4'), run = require('gulp-run'); //根据您的实际服务器修改 var options = { 'build': 'dist', 'host': 'o2server服务器', 'user': 'sftp user', 'pass': 'sftp password', "port": 22, "remotepath": "/data/o2server/servers/webserver/vue-app" }; //sftp任务 function upload_sftp(){ var build = "dist/**/*"; return gulp.src(build) .pipe(sftp({ host: options.host, user: options.user || 'anonymous', pass: options.pass || null, port: options.port || 22, remotepath: (options.remotepath || '/') })); } //ftp任务 function upload_ftp(){ var build = "dist/**/*"; return gulp.src(build) .pipe(ftp({ host: options.host, user: options.user || 'anonymous', pass: options.pass || null, port: options.port || 21, remotepath: (options.remotepath || '/') })); } //运行vue build function build_vue() { return run('npm build').exec(); } 输出gulp任务,如果使用ftp,更换第二个任务为upload_ftp exports.build = gulp.series(build_vue, upload_sftp);
然后,当开发或修改代码完成后,执行以下命令:
gulp build
就可以自动编译vue应用,并上传到o2服务器。通过浏览器访问:http://your-server/vue-app就可以看到结果。
当然,这只是一个很简单的例子,提供一个思路,您也可以使用其他您熟悉的工具实现相同或类似的功能。对于熟悉前端构建工具的用户,实现更便捷的功能也不是难事,比如可以监控文件改动,实时部署,并刷新浏览器等。
本章给大家介绍了在o2平台的框架内,使用vue开发应用,并在o2服务器的webserver中运行了起来。它集成了o2平台的所有功能,您也不需要处理类似登录等一些繁琐的事,而且可以方便的调用o2的后端服务。并提供了一些优化开发模式的思路。