zoukankan      html  css  js  c++  java
  • 从无到有之webpack+vuerouter的简单例子以及各个属性解释

    之前一直没玩过webpack和vue,近两周才看这玩意,本文纯属自己的实验+之前angular作战经验的理解一些入门文章

    首先webpack关于vue以及各个包

    module.exports = {
        // entry: { //配置入口文件,有几个写几个
        //   'static/js/home/login': path.resolve(__dirname, './components/home/login.js')
        // },
        entry: './conponent/demo2/main.js',
        output: {
            path: './dest',
            publicPath: './dest/',这个在router是动态加载异步时候有用,head里面会插入一个asyc属性,没有这个会显示文件路径错误
            filename: '[name].js',
            chunkFilename:'test[id].js'//这个如果没有的话,那么那些asyc属性里的文件名字就是1.1,2.2等之类的命名。。。
        },
        module: {
    
            loaders: [
                {
                    test: /.vue$/,
                    loader: 'vue'
                },
                {
                    test: /.js$/,
                    exclude: /node_modules/,
                    loader: 'babel',
                    query: {
                        presets: ['es2015']
                    }
                },
                {
                    test: /.less$/,
                    loader: 'style!css!autoprefixer!less'
                },
                {
                    test: /.(html|tpl)$/,
                    loader: 'html-loader'
                },
                {
                    // edit this for additional asset file types
                    test: /.(png|jpg|gif)$/,
                    loader: 'url',
                    query: {
                        limit: 10000,
                        name: '[path][name].[ext]?[hash]'
                    }
                }
            ]
        }
    };
    

      包文件:

    {
      "name": "paycenter",
      "version": "1.0.0",
      "description": "",
      "scripts": {
        "test": "echo "Error: no test specified" && exit 1"
      },
      "author": "lyz",
      "license": "ISC",
      "devDependencies": {
        "babel-core": "^6.9.0",
        "babel-loader": "^6.2.4",
        "babel-plugin-transform-runtime": "^6.9.0",
        "babel-preset-es2015": "^6.9.0",
        "babel-preset-stage-1": "^6.5.0",
        "babel-runtime": "^6.9.0",
        "css-loader": "^0.23.1",
        "extract-text-webpack-plugin": "^1.0.1",
        "style-loader": "^0.13.1",
        "vue-hot-reload-api": "^1.3.2",
        "vue-html-loader": "^1.2.2",
        "vue-loader": "^8.3.1",
        "vue-style-loader": "^1.0.0",
        "webpack": "^1.13.0"
      },
      "dependencies": {
        "vue": "^1.0.24",
        "vue-resource": "^0.7.0"
      }
    }
    

      

    基本配置文件

    然后新建一个路由配置文件:routerconfig.js

    里面是路由的配置(demo所以就只写两个路由)

    export default function routerconfig(router){    router.map({
    '/home':{ subRoutes:{ '/bar':{ component:resolve=>{
    require(['./demo/demo3.vue'],resolve)//这个resolve会在你html上的main文件里面自动生成一个asyc属性,属性值就是对应js的文件位置,
    里面会异步按需加载对应的那个组件的
    js文件,所以webpack的配置文件里的publicpath和chunckfilname很重要

    } } }, component:resolve=>{ require(['./demo/demo1.vue'],resolve) } }, '/user':{ name:'user', component:resolve=>{ require(['./demo/demo2.vue'],resolve) } } }) }

    然后看下demo1.vue文件的引用和ng的ui-router是一样的

    <template>
    <p v-link="{path:'home/bar'}">demo1</p>
    <router-view></router-view>
    </template>
    <script>
    export default {
    route: {
    activate: function (transition) {
    console.log('进入!')//这里在每次进入该组件会触发
    transition.next()//这里如果写abort就是说这个路由下的组件的大门被关闭了,不可切换进来
    },
    deactivate: function (transition) {
    console.log('离开')//这里在每次离开改组件会触发
    transition.next()//同理这里abort就是说进来了不可离开
    }
    }
    }

    </script>

    这个时候运行webpack一个潜逃路由就有了

  • 相关阅读:
    nyoj 199 无线网络覆盖
    hdoj 2682 Tree
    nyoj 845 无主之地1
    hdoj 1874 畅通工程续【dijkstra算法or spfa算法】
    hdoj 2544 最短路【dijkstra or spfa】
    hdoj 4548 美素数
    打表法
    hdoj 2098 分拆素数和
    hdoj 1262 寻找素数对
    bzoj1180,2843
  • 原文地址:https://www.cnblogs.com/lyz1991/p/5561472.html
Copyright © 2011-2022 走看看