美文网首页
NODE-WEB07:POI框架与VUE

NODE-WEB07:POI框架与VUE

作者: 杨强AT南京 | 来源:发表于2019-10-31 08:09 被阅读0次

  Vue框架配置是比较繁琐的,简化这种繁琐的方式催生一些脚手架工具,POI就是其中一种,POI简化Vue的配置的思路基本上与其他工具一样,采用默认配置与用户定制配置相结合,这样基本上0配置也能进行开发工作,是的程序员把精力倾注在代码逻辑上。本主题就讲解下POI的使用,包括的内容有:
  1. POI安装与环境;
  2. 项目构建的通用模式;
  3. 用户定制配置(使用jQuery的配置为例)


准备工作

  • 一般工具都采用全局安装,运行模块采用局部本地项目安装;

安装poi

  • sudo npm install -g poi --unsafe-perm

    • --unsafe-perm是防止安装的时候切换nobody用户身份。
  • 全局安装poi

安装create-poi-app

  • sudo npm install create-poi-app -g --unsafe-perm

  • POI的脚手架工具

创建项目

使用create-poi-app创建项目

  • create-poi-app vue_poi_demo
    • 命令create-poi-app 是poi项目创建工具,命令选项直接指定需要创建的项目名。
    • 创建过程中,需要做一些选择,我选择的是(空格选择,up/down方向键选择菜单项,回车确认):
      • Type Checker:类型检测
      • Linter:格式与语法规范检测
      • PWA(Progressive Web App):启用 PWA 插件时注入 manifest/icon 链接;
    • 创建项目第一步:配置Type Checker
  • 接下来就是选择TypeChecker类型

    • 只有TypeScript(Flow还没有实现)
  • Linter选择TSLint(up/down方向键选择值)

    • 创建项目第二步:配置TSLint
  • 设置完成会自动安装相关node_modules模块
    • 创建项目第三步:自动模块安装

项目目录结构

  1. 目录结构
    • 创建项目的目录结构截图
  1. 目录结构说明
    • node_modules: 安装到本地的模块
    • public:需要打包的公开发布的静态资源
    • src:需要打包的用户开发的源代码(主要包含js,vue,css,字库,图像等)
    • 配置文件:
      1. package.json:npm的运行环境配置
        • dev
        • build
      2. poi.config.js:poi的核心配置
      3. tsconfig.json:typescript插件配置
      4. tslint.json:语法与格式配置

运行与构建项目

  • 构建与运行项目,可以查看package.json
    • 在package.json配置运行与打包构建命令

构建

  • npm run build
  • 启动一个HTTP服务,使用浏览器访问。

运行项目

  • npm run dev

  • 构建完成产生浏览器可运行的静态文件(在dist目录下)

Vue页面结构

  • poi默认支持vue模块化加载器vue-loader,就是说基本上是0配置。

主页容器模板

  • 在public目录下添加index.html主页容器模板

    • 默认没有,产生一个默认的index.html,如果在public存在index.html就是用用户的作为模板。
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <title></title>
      </head>
      <body>
        <div id="app">{{data1}}</div>
      </body>
    </html>
    
    

- 说明:
    - 上面的`<div id=app>`会被Vue动态渲染为路由器容器;

## 路由容器模板

- 添加这个模块,主要是为Vue-router提供工作区切换的需要。
    - 这么文件是有套路的:三大块template/javascript/style。
    
    
```HTML

    <template>
      <div>
        <h1>首页:{{data1}}</h1>
        <router-view></router-view>
      </div>

    </template>

    <script>

    export default {
      name: 'app',
      components: {
      },
      data(): function {
        return  {
          data1: '数据',
        };
      },
    };

    </script>
    <style>
    </style>

内容页面

  • 上面的都是套路,这个部分是程序员需要关注的设计、业务与逻辑实现的主要文件。
    • 这里我们使用了jQuery,主要用来说明其他第三方js模块的引入与使用,采用了webpack内置的全局处理插件ProvidePlugin。

<template>
  <div>
    <h1 id="tl">工作区</h1>
  </div>
</template>
<script>
$(
    () => {
        $('#tl').css('border', '3px solid red');
        $('#tl').click(
            () => {
                alert('Hello');
            },
        );
    },
  );
</script>
<style>
</style>


修改入口文件

  • 在src下构建,默认提供的是index.ts,如果使用VSCode工具,处于语法检测的目的,可以把扩展名修改为js

  • 完整的文件如下:

    • 其中所有路由url都单独封装在一个js文件中routes.js,可以直接在入口文件使用也是一样,如果项目太大,则容易使入口文件过于繁琐庞大。
  • 提示:

    • poi要求遵循ES6的新语法规则,比如建议使用箭头函数,不建议使用function定义函数。
import index from './pages/index.vue';

var routes = [
    {
        path: '/',
        component: index
    },
];
export {routes}

    import Vue from 'vue';
    import VueRouter from 'vue-router';
    import App from './App.vue';
    import {routes} from './routes.js';
    import $ from  'jquery';

    Vue.use(VueRouter);

    var router = new VueRouter(
      {
        mode:"hash",
        base: __dirname,
        routes: routes,
      }
    );

    var vm = new Vue({
      el: '#app',
      router,
      render: (h) => h(App),
    });

路由数组文件

  • 定义的routes变量导出,在index.js中使用;
import index from './pages/index.vue';

var routes = [
    {
        path: '/',
        component: index
    },
];
export {routes}

创建Vue对象并绑定到主页容器的挂载点

    import Vue from 'vue';
    .....
    import App from './App.vue';
    ....



    var vm = new Vue({
      el: '#app',
      render: (h) => h(App),
    });

构建路由对象


import VueRouter from 'vue-router';
import {routes} from './routes.js';


Vue.use(VueRouter);

var router = new VueRouter(
  {
    mode:"hash",
    base: __dirname,
    routes: routes,
  }
);

挂载路由对象到Vue

  • 只有挂载路由对象到Vue才能使用<router-view>内置组件:打包翻译才能被vue-loader识别。

import Vue from 'vue';
import VueRouter from 'vue-router';
import App from './App.vue';
import {routes} from './routes.js';

Vue.use(VueRouter);

var router = new VueRouter(
  {
    mode:"hash",
    base: __dirname,
    routes: routes,
  }
);

var vm = new Vue({
  el: '#app',
  router,                             // 挂载路由对象到vue对象。
  render: (h) => h(App),
});

webpack.ProvidePlugin插件与jQuery

  • 使用jQuery比较简单,在webpack中需要配置,在poi的配置也需要配置webpack。如下几步:
    1. 安装jQuery(可以直接使用jQuery.js文件,因为语法的标准化与趋势,简易不再使用传统js文件,而是使用module模块化的封装js文件)
    2. 代码中正常使用jQuery
    3. 为了在index.js引入jQuery,并在所以模块中能使用,需要配置下全局化。
      • 使用webpack的ProvidPlugin插件;
      • 在poi.config.js中配置webpack的配置;
        • webpack的配置可以参考webpack的相关文档,我们前面的内容有专门的介绍。

    var webpack = require("webpack");

    module.exports = {
      entry: 'src/index',
      plugins: [
        {
          resolve: '@poi/plugin-typescript'
        },
      ],
      ////////////////////////////webpack配置
      configureWebpack: {
        plugins: [
          new webpack.ProvidePlugin({
            $: 'jquery',
           }),
        ]
      }
      /////////////////////////////////////////
    }
    


附录

  • 其他需要处理的包含网页中的资源:

    • css及其相关的样式资源(包含less,sass等)
    • 图像资源(包含base64压缩编码,文件名hash处理等)
    • html模板(pug,ejs等)
    • 资源抽取(把css,jpg等单独抽取为文件,并单独hash编码);
    • 与react框架融合;
  • 更多的poi与create-poi-app工具使用,使用在线帮助即可。


相关文章

  • NODE-WEB07:POI框架与VUE

      Vue框架配置是比较繁琐的,简化这种繁琐的方式催生一些脚手架工具,POI就是其中一种,POI简化Vue的配置的...

  • web前端开发高级

    前端高效开发框架技术与应用 Vue 基础Vue 框架简介 MVX 模式介绍Vue 框架概述如何使用 Vue.js ...

  • 2021总结计划

    技术总结:①主要框架:vue的框架思想、vue3与react小程序框架与部署git提交规范Vue-cli自定义模板...

  • vue和vue-cli的区别与联系

    vue和vue-cli的区别与联系 vue:是一套框架,用于构建用户界面的渐进式框架。 vue-cli: ...

  • Vue框架基础

    原生js与Vue框架的区别 用原生实现双向数据绑定 用Vue实现双向数据绑定 Vue是一个javaScript框架...

  • Excel | POI框架

    前言 poi框架可以支持我们在Java代码中,将数据导出成excel,但是实际开发中,往往还需要设置excel字体...

  • 从Excel的读写来看Kotlin的扩展方法

    Apache POI框架是非常常用的操作Office文档库,最近用Kotlin重构了一段使用POI操作Excel的...

  • How to use symfony's compone

    采用框架:codeIgniter前端:Vue js 因使用 Vue js 与 element ui 实现前端,使用...

  • Spring Boot + EasyExcel 导入导出,好用到

    EasyExcel是阿里巴巴开源poi插件之一,主要解决了poi框架使用复杂,sax解析模式不容易操作,数据量大起...

  • Vue与React的区别

    Vue与React两个框架的区别和优势对比

网友评论

      本文标题:NODE-WEB07:POI框架与VUE

      本文链接:https://www.haomeiwen.com/subject/bgrzvctx.html