NODE-WEB07:POI框架与VUE

2019-10-31  本文已影响0人  杨强AT南京

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


准备工作

安装poi

安装create-poi-app

创建项目

使用create-poi-app创建项目

项目目录结构

  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:语法与格式配置

运行与构建项目

构建

运行项目

Vue页面结构

主页容器模板


- 说明:
    - 上面的`<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>

内容页面


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


修改入口文件

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),
    });

路由数组文件

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


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


    var webpack = require("webpack");

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


附录


上一篇下一篇

猜你喜欢

热点阅读