详解从零搭建 vue2 vue-router2 webpack3 工程

《详解从零搭建 vue2 vue-router2 webpack3 工程》是一篇教程,它旨在帮助初学者学习如何使用 Vue 2 和 Vue-Router 2 搭建一个简单的 Web 应用程序,同时使用 Webpack 3 来处理依赖,以及使用 ES6 进行编程。以下是它的完整攻略:

介绍

在开始之前,需要了解一些前置知识:Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。Vue-Router 2 是一个 Vue.js 的官方路由管理器,用于管理应用程序的路由。Webpack 3 是一个模块捆绑器,用于处理 JavaScript 模块。

创建项目

首先要创建一个新的 Vue.js 项目,可以使用 Vue.js 官方提供的 Vue CLI 工具来创建项目。在终端中运行以下命令来安装它:

$ npm install -g @vue/cli

安装完成后,运行以下命令来创建一个新的 Vue.js 项目:

$ vue create my-project

这个命令将会创建一个名为 my-project 的新项目,其中包含了所有必要的文件和依赖项。在本教程中,使用了默认选项来创建这个项目。

安装依赖

接下来,需要安装一些必要的依赖项。在本教程中,使用以下命令来安装这些依赖项:

$ npm install vue-router axios --save
$ npm install webpack webpack-cli webpack-dev-server html-webpack-plugin babel-loader @babel/core @babel/preset-env --save-dev

这个命令将会安装 Vue-Router、Axios 和 Webpack 的一些必要依赖项。

创建入口文件和组件

接下来,需要创建一个用于启动应用程序的入口文件。在项目的 src 目录下创建一个名为 main.js 的文件,然后将以下代码复制到该文件中:

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

new Vue({
    router,
    render: h => h(App)
}).$mount('#app');

这个代码将会:

  1. 引入 Vue.js、App.vue 组件和 Vue-Router 路由管理器;
  2. 创建一个新的 Vue.js 实例,将其挂载到 id 为 app 的 DOM 元素上;
  3. 将 Vue-Router 路由管理器作为实例的一个参数传递给它;
  4. 将 App.vue 组件作为实例的根组件,并使用 render 函数来渲染它。

接下来,创建一个 App.vue 组件,在该组件中包含以下代码:

<template>
    <div>
        <router-view />
    </div>
</template>

<script>
export default {
    name: 'App',
}
</script>

<style>
</style>

这个组件将会:

  1. 渲染一个包含 Vue-Router 视图实例的 div 元素。

最后,创建一个名为 HelloWorld.vue 的新组件,在该组件中包含以下代码:

<template>
    <div class="hello">
        <h1>{{ greeting }}</h1>
    </div>
</template>

<script>
export default {
    name: 'HelloWorld',
    data() {
        return {
            greeting: 'Hello World!',
        };
    },
};
</script>

<style scoped>
.hello {
    font-size: 48px;
    text-align: center;
}
</style>

这个组件将会:

  1. 渲染一个包含一个标题的 div 元素。

配置 Webpack

接下来,需要创建一个 Webpack 配置文件。在项目的根目录下创建一个名为 webpack.config.js 的文件,并将以下代码复制到该文件中:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: './src/main.js',
    output: {
        path: path.resolve(__dirname, './dist'),
        filename: 'build.js'
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                use: 'babel-loader',
                exclude: /node_modules/
            }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: './public/index.html'
        })
    ],
    devServer: {
        historyApiFallback: true,
        noInfo: true
    }
};

在该文件中:

  • entry:指定了 webpack 的入口文件。
  • output:指定了 webpack 的输出位置和文件名。
  • module:指定了 webpack 的模块加载器。
  • plugins:指定了 webpack 的插件,如 HTMLWebpackPlugin,用于生成 HTML 文件。
  • devServer:指定了 webpack-dev-server 的相关设置。

此外需要在根目录下创建一个 public/index.html 文件,将以下代码复制到该文件中:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My App</title>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

这个文件将会被 webpack 用于生成最终的 HTML 文件。

配置路由

接下来,将在 src 目录下创建一个 router/index.js 文件,用于配置路由:

import Vue from 'vue';
import Router from 'vue-router';
import HelloWorld from '../components/HelloWorld.vue';

Vue.use(Router);

export default new Router({
    mode: 'history',
    routes: [
        {
            path: '/',
            name: 'HelloWorld',
            component: HelloWorld
        }
    ]
})

在这个文件中:

  • 引入了 Vue、Vue-Router 和 HelloWorld 组件;
  • 创建了一个 Vue-Router 实例;
  • 配置了路由规则。

测试

现在一切准备就绪,运行以下命令来启动 webpack-dev-server:

$ npx webpack-dev-server --hot --open

然后在浏览器中打开 http://localhost:8080,就能看到一个界面,上面有一个大大的 "Hello World!" 标题。

示例1

现在,可以添加一个新的页面。创建一个名为 World.vue 的新组件,在其中包含以下代码:

<template>
    <div class="world">
        <h1>{{ greeting }}</h1>
    </div>
</template>

<script>
export default {
    name: 'World',
    data() {
        return {
            greeting: 'Hello World! I am the world page.',
        };
    },
};
</script>

<style scoped>
.world {
    font-size: 48px;
    text-align: center;
}
</style>

然后修改 router/index.js 文件,添加以下路由规则:

import World from '../components/World.vue';

// ...

export default new Router({
    // ...
    routes: [
        {
            path: '/',
            name: 'HelloWorld',
            component: HelloWorld
        },
        {
            path: '/world',
            name: 'World',
            component: World
        }
    ]
})

注意路径中包含了一个名为 world 的新路由。接下来访问 http://localhost:8080/world 就能看到一个新的页面,上面有一个标题 "Hello World! I am the world page."。

示例2

现在,可以通过网络请求来获取数据。创建一个名为 HelloWorld2.vue 的新组件,在其中包含以下代码:

<template>
    <div class="hello">
        <h1>{{ data }}</h1>
    </div>
</template>

<script>
import axios from 'axios';

export default {
    name: 'HelloWorld2',
    data() {
        return {
            data: null,
        };
    },
    mounted() {
        axios.get('https://jsonplaceholder.typicode.com/posts/1')
            .then(response => {
                this.data = response.data.title;
            })
            .catch(error => {
                console.log(error);
            });
    },
};
</script>

<style scoped>
.hello {
    font-size: 48px;
    text-align: center;
}
</style>

这个组件使用了 Axios 来获取一个 JSON 数据,然后将其显示在页面上。

然后在 router/index.js 文件中添加以下路由规则:

import HelloWorld2 from '../components/HelloWorld2.vue';

// ...

export default new Router({
    // ...
    routes: [
        {
            path: '/',
            name: 'HelloWorld',
            component: HelloWorld
        },
        {
            path: '/world',
            name: 'World',
            component: World
        },
        {
            path: '/hello2',
            name: 'HelloWorld2',
            component: HelloWorld2
        },
    ]
})

这个新路由包含一个名为 HelloWorld2 的新组件。接下来访问 http://localhost:8080/hello2 就能看到一个新的页面,上面有一个标题 "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",它是从远程服务器获取的数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解从零搭建 vue2 vue-router2 webpack3 工程 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • vue过滤器实现日期格式化的案例分析

    下面我就为你详细讲解“Vue过滤器实现日期格式化的案例分析”的完整攻略,并且给出两个具体的示例说明。 Vue过滤器实现日期格式化的原理 在Vue中,过滤器(filter)是对需要显示的数据的一种格式化处理方法,可以在页面中直接使用,让数据更加符合人类的阅读习惯。而日期格式化正是过滤器的一种常见应用。它的原理也比较简单,就是通过Date对象的原型方法或者第三方…

    Vue 2023年5月29日
    00
  • vue-cli3打包时图片压缩处理方式

    关于“vue-cli3打包时图片压缩处理方式”的完整攻略,我们可以采用如下两个步骤来实现: 第一步:安装相关依赖 为了实现图片的压缩处理,我们需要安装相关的依赖包,具体步骤如下: 1.1 安装imagemin-webpack-plugin npm install –save-dev imagemin-webpack-plugin 这里使用了npm工具安装了…

    Vue 2023年5月28日
    00
  • Vue js with语句原理及用法解析

    针对Vue js的with语句,下面是详细的攻略。 什么是with语句? with语句是一种在JavaScript中提供访问作用域内成员的方法,其使用方式通常如下所示: with(obj) { // code block } 其中,obj是一个任意JavaScript对象,而在code block中,我们可以直接访问obj对象中所包含的属性和方法,而无需通过…

    Vue 2023年5月27日
    00
  • vue项目或网页上实现文字转换成语音播放功能

    实现文字转换成语音播放功能,需要用到Web API中的SpeechSynthesis接口,这是一个实现文本转语音的JavaScript接口。在Vue项目或网页中,可以通过以下步骤来实现: 步骤一:创建Vue组件 首先,需要创建一个Vue组件来实现文本转语音的功能。比如,在.vue文件中,可以创建一个包含输入框、按钮和语音播放控件的组件,如下所示: <t…

    Vue 2023年5月28日
    00
  • vue-route路由管理的安装与配置方法

    下面是详细的Vue Router路由管理的安装与配置方法攻略: 安装 首先,在项目根目录下,运行以下命令安装vue-router依赖: npm install vue-router –save 配置 在项目中使用Vue Router需要在main.js中引入Vue Router并配置路由: // 引入Vue Router import VueRouter …

    Vue 2023年5月28日
    00
  • vue2.0全局组件之pdf详解

    Vue 2.0全局组件之PDF详解 前言 本文将详细讲解Vue 2.0全局组件之PDF的使用方法和注意事项,并包含两个示例用于说明。如果您想将网站上的PDF文件以组件形式呈现,本文将为您提供详尽的攻略。 准备工作 在使用全局组件之前,您需要确保已经使用Vue CLI创建了项目,并安装了Vue。 vue create my-project 然后执行以下命令安装…

    Vue 2023年5月28日
    00
  • vue中循环请求接口参数问题及解决

    下面是“vue中循环请求接口参数问题及解决”的完整攻略。 问题描述 在Vue中,我们有时需要使用循环来请求后端接口的数据。例如,我们可能需要在一个页面上显示多个商品的信息,每个商品的详细信息都需要通过调用接口来获取。这时候,我们会发现循环的次数和请求的参数之间存在一定的关系,如果我们直接在循环内部发送异步请求,可能会造成请求重复提交或者请求参数不正确的问题,…

    Vue 2023年5月27日
    00
  • Vue实现万年日历的示例详解

    下面是“Vue实现万年日历的示例详解”的完整攻略。 什么是万年日历? 万年历是一种用于了解日期和节气变化的工具。它可以显示某一年的每个月份的日历,同时也可以显示节气和一些重要的农历节日。在日常生活中,万年历常常被用于查询特定日期的星期几、农历日期等信息。 如何使用Vue实现万年日历? 以下是使用Vue实现万年日历的步骤: 第一步:创建Vue应用程序 在htm…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部