vue入门(一):项目搭建

栏目: JavaScript · 发布时间: 6年前

内容简介:我的JS水平比较一般,而且还是跨专业半路出家,因此学习是唯一出路。vue并不是我接触的第一个前端框架,之前学习过angular1.x,觉得不太容易,结果没多久2版本就推出了,一看文档:直到后来,公司需要做个管理后台系统,经过一番比较最终选择了vue,原因:二话不说立马上手,我之前的项目都是通过vue-cli创建的,而其中的webpack配置并不特别贴合项目中的要求,由于我之前已经写了webpack系列的博文,所以在这里就从0-1搭建一个vue项目。

前言

我的JS水平比较一般,而且还是跨专业半路出家,因此学习是唯一出路。vue并不是我接触的第一个前端框架,之前学习过angular1.x,觉得不太容易,结果没多久2版本就推出了,一看文档: totally rewrite 。WTF???1还没学利索呢,2就重写了?从此抛弃angular。

直到后来,公司需要做个管理后台系统,经过一番比较最终选择了vue,原因:

  • angular已拉黑
  • react里的jsx语法一时不容易掌握
  • vue学习成本较低,简单易上手,性能也很优秀

二话不说立马上手,我之前的项目都是通过vue-cli创建的,而其中的webpack配置并不特别贴合项目中的要求,由于我之前已经写了webpack系列的博文,所以在这里就从0-1搭建一个vue项目。

1. 开始

1.1 安装

npm install vue vue-router -S

在项目中我们使用 .vue 文件进行开发,所以还要安装一些工具:

npm install vue-loader vue-style-loader vue-template-compiler -D

1.2 整理目录

打开我们之前的webpack项目,删除 src 目录下的所有文件,并在其下创建 asset 文件夹,用来放置资源文件; pages 文件夹,来放置我们的页面文件; router 文件夹,路由配置; http 文件夹,ajax请求配置; app.js 入口文件,还有一个 app.vue 文件,如图所示:

vue入门(一):项目搭建

然后就可以写代码啦.........

2. 下面正式写代码

2.1 认识.vue文件

这个 .vue 文件是啥呢,官方文档大概是这么说的:

在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页面内指定一个容器元素。

这种方式在很多中小规模的项目中运作的很好,在这些项目里 JavaScript 只被用来加强特定的视图。但当在更复杂的项目中,或者你的前端完全由 JavaScript 驱动的时候,下面这些缺点将变得非常明显:

  • 全局定义 (Global definitions) 强制要求每个 component 中的命名不得重复

字符串模板 (String templates) 缺乏语法高亮

  • 不支持 CSS (No CSS support) 意味着当 HTML 和 JavaScript 组件化时,CSS 明显被遗漏
  • 没有构建步骤 (No build step) 限制只能使用 HTML 和 ES5 JavaScript, 而不能使用预处理器,如 Babel

文件扩展名为 .vue 的 single-file components(单文件组件) 为以上所有问题提供了解决方法,并且还可以使用 webpack等构建工具。

这是一个文件名为 Hello.vue 的简单实例:

vue入门(一):项目搭建

编写 app.vue 文件:

<template>
  <div>
    <h1 class="red">{{text }} this is main</h1>
  </div>
</template>
<script>
export default {
  data () {
    return {
      text: 'hello world'
    }
  },
  mounted () {
    console.log('app is mounted')
  }
}
</script>
<style>
  .red {
    color: red;
  }
</style>

编写入口文件 app.js

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

new Vue({
  el: '#app',
  render: function (h) {
    return h(App)
  }
})

2.2 配置webpack

在 config 目录下创建 vue-loader.config.js

// vue-loader.config.js 
module.exports = function (isDev) {
  return {
    preserveWhiteSpace: true,
    extractCss: !isDev,
    cssModules: {
      localIdentName: isDev ? '[path]-[name]-[hash:base64:5]' : '[hash:base64:5]',
      camelCase: true
    },
    hotReload: isDev //根据环境变量生成
  }
}

修改 webpack.config.js

// 引入vue-loader.config
const createVueLoaderOptions = require('./vue-loader.config')
// 引入VueLoaderPlugin
const VueLoaderPlugin = require('vue-loader/lib/plugin')
// 修改入口
entry: {
    app: path.join(__dirname, '../src/app.js')
  }
// 修改loaders配置
{
        test: /\.vue$/,
        loader: 'vue-loader',
        options: createVueLoaderOptions(isDev)
      },
      {
        test: /\.css$/,
        use: [
          isDev ? 'vue-style-loader' : MiniCssExtractPlugin.loader,
          { loader: 'css-loader', options: { importLoaders: 1 } },
          'postcss-loader'
        ]
      },
      {
        test: /\.less$/,
        use: [
          isDev ? 'vue-style-loader' : MiniCssExtractPlugin.loader,
          'css-loader',
          {
            loader: 'postcss-loader',
            options: {
              sourceMap: true
            }
          },
          'less-loader'
        ]
      }
// 添加VueLoaderPlugin
new VueLoaderPlugin(),
// 修改HtmlWebpackPlugin
new HtmlWebpackPlugin({
      template: path.join(__dirname, '../app.html'),
      inject: true,
      minify: {
        removeComments: true
      }
    })

至此,所有配置完毕,执行

npm run dev

如果配置没错,项目就成功跑起来了

vue入门(一):项目搭建


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Eric Meyer on CSS

Eric Meyer on CSS

Eric Meyer / New Riders Press / 2002-7-8 / USD 55.00

There are several other books on the market that serve as in-depth technical guides or reference books for CSS. None, however, take a more hands-on approach and use practical examples to teach readers......一起来看看 《Eric Meyer on CSS》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具