不借助vue-cli,自行构建一个vue项目

前言:

  对于刚刚接触vue的同学来说,直接用官方的构建工具vue-cli来生成一个项目结构会存在一些疑惑,比如:   .vue组件 为什么可以写成三段式(tempalte、script、style)? 整个项目是怎样组织运行起来的,main.vue - App.vue - 各个组件 之间是怎么相互引用的?

  为了让更多同学理解,我们不借助官方构建工具,自行构建一个类似于官方的项目结构,去体会它的运作机制。

  在自行构建的项目中,我们的组件并不使用.vue文件方式,因为这种文件是经过了vue-loader做了相应的处理,意思可以理解为将组件<template></template>中的模板编译到了组件对象中。而我们既然选择原生的方式,那么我们就应该将模板写在组件选项‘template‘中(虽然这种方式没有语法高亮,但要记得我们这样做的目的),而我们的组件后缀是.js。

开始:

  1. 进入自己的项目根目录,初始化npm

  npm init

  2. 安装vue包到项目

  npm install --save-dev vue

  3. 创建index.html/src目录/dist目录

  touch index.html  mkdir src  mkdir dist

文件功能:

  到目前,我们的项目结构:

  

  接下来我们在src路径下创建,js入口文件main.js,项目跟组件App.js,和组件目录components,并且我们象征性的创建两个组件cp1.js、cp2.js :

  

  main.js 是所有js的入口,(那么我们在index.html文件中只需要引入这个文件就够了? -- 并不是),该文件将会声明与其他组件的依赖关系(而其他组件又会声明和别的组件的关系),我们在写完项目的时候需要使用webpack打包整个项目的js代码,而这个main.js就是打包寻找依赖的入口。

  我们得知通过Vuejs构建的项目,是组件化的,项目可以说是由一个个组件构成的,在一个组件中可以使用其他的组件作为自己的子组件,那么必然会存在一个根组件,它就是App.js。

组件:

  components文件夹下存放的是项目中的除根组件外的其他组件,我们在写这些组件的时候应该遵循的一个原则就是:与外界隔绝,不做任何与外界耦合的假设。那么我们就来我们就开始编写组件cp1.js吧:

  

  请注意它和.vue组件写法的区别,我们的组件模板是写在template选项中的。并且提供给外界一个props参数接口msg。

  接下来我们需要在根组件中引用这个组件,根组件的写法遵循同样的原则:

  

  要使用cp1组件,首先要将其import导入,因为cp1.js中导出的写法是export default,所以我们在这可以给cp1组件对象随意命名(import后紧随的‘cp1‘就是我们的命名),这是ES6的语法规则。

  记住:每个组件对象我们都需要使用export default进行导出,因为这样外界才可以调用它,并且将 给此组件的命名权 递交给使用者。

  我们看到,在根模板中我们有components选项,用来注册将使用的组件(局部注册)。此选项对象中的key将作为模板中标签,value为其他组件对象。

  在模板中我们使用了cp1标签,并且给其props属性msg赋值为‘Message from parent ~‘。

入口:

  组件都写好了,那如何将其挂载到html页面中呢,这个时候我们需要一个桥梁,就是main.js:

  

  这次我们终于用到Vue了!(记得先导入),并且导入App根组件,将其注册为Vue实例的组件,并且在模板中使用它(template:‘<app></app>‘),然后将这个Vue实例挂载到index.html中id为app的元素中。

打包:

  在打包之前我们需要先修改vue npm包的package.json文件,将默导出的‘只包含运行时’改为‘完整版’,即将如下两项的‘runtime‘去掉(运行时不包含编译器 | 编译器作用:用来将模板字符串编译成为 JavaScript 渲染函数的代码>,因此组件对象不支持 template 选项):

  

  在项目根路径执行打包(全局安装过webpack)

  webpack ./src/main.js ./dist/main.bundle.js

index.html:

  将打包后的文件引入到页面:

  

  接下来去浏览器访问它吧~

  效果:

  

  

时间: 2024-10-10 00:50:08

不借助vue-cli,自行构建一个vue项目的相关文章

Cocos2d-x 3.0 - Eclipse上构建一个Android项目

Cocos2d-x 3.0 - Eclipse上构建一个Android项目 2014年4月30日 4月末 本篇继续介绍Cocos2d-x 3.0的一些基础内容,前面一篇博客介绍了如何在Visual Studio 2012上编译我们的Cocos2d-x项目,也成功把Helloworld运行起来了.跟以往的版本是类似的,只不过创建空项目的时候命令变成了cocos.本篇博客带给大家的是,如何在Eclipse运行起我们的Cocos2d-x项目,如果童鞋们有看我写的Cocos2d-x 2.2.3版本的交叉

快速构建一个权限项目(三)

如何构建一个权限项目这里接着我们上次说的来编写代码,我们这个点主要讲的是接口请求全局异常处理, 接下来跟我一起看我编写的代码如何实现的,首先我们要定义一个全局异常的处理类,在common包下建一个类SpringExceptionResolver: package cn.oyc.common; import cn.oyc.exception.ParamException; import cn.oyc.exception.PermissionException; import lombok.exte

Vue安装并创建一个简单项目

1.nodejs安装 下载地址:https://nodejs.org/en/download/ 安装完之后cmd 下输入:node -v 查看是否安装成功. 2.查看npm版本 cmd下输入命令:npm -v 如果低于3.0版本需要进行升级 升级方法: 在cmd命令下cd到nodejs安装目录,然后输入以下命令:npm update npm 这里要等待一下.更新完成后再使用:npm -v检查一下版本 3.cnpm安装 cnpm是淘宝的一个镜像,安装之后可以使用cnpm安装命令工具,安装速度会加快

Vue CLI 3.x搭建Vue项目

一.Node安装 windows 1. Node.js (>=8.9, 推荐8.11.0+) Node官网下载 .msi 文件,按步骤下载安装即可. 安装完之后在cmd中输入 node -v,若显示版本号,则说明安装成功. 2. Git(命令行终端) Git官网下载安装即可. Linux apt-get install nodejs node -v apt-get install npm npm -v npm命令1.得到原本的镜像地址 npm get registry 2.设置成淘宝 npm c

一、vue:如何新建一个vue项目

比较好用的一个脚手架:https://a1029563229.gitbooks.io/vue/content/cooking-cli.html 创建一个vue项目的流程: 1.安装node,版本号必须是3.0.0以上 2.python 2.7.* 3.安装淘宝镜像:npm install -g cnpm --registry=https://registry.npm.taobao.org 4.cnpm i cooking-cli -g //npm install -g vue-cli 5. co

vue学习笔记-初始化一个vue项目(1)

1.cnpm install -g vue-cliUsage:vue init <template-name> <project-name> 2.我们一般使用webpack模版构建应用vue init webpack web04 3.安装vue-routercnpm install vue-router --save-dev4.npm run dev 简单的目录结构: |-index.html |-main.js 入口文件 |-App.vue vue文件,官方推荐命名法 |-pac

ember.js快速构建一个应用项目(1)

步骤: 安装Ember. 创建一个新应用程序. 定义路由. 编写一个UI组件. 构建您的应用程序以部署到生产环境. 安装Ember 您可以使用npm(Node.js包管理器,你需要安装node.js)使用单个命令来安装Ember.在终端中输入以下内容: ember new ember-quickstart 创建一个新应用程序 一旦你通过npm安装了Ember CLI,你将可以ember在你的终端中访问一个新的命令.您可以使用该ember new命令来创建一个新的应用程序: ember new e

webpack(零工程构建一个前端项目)

工作流程记录: 1.初始化项目:npm init -y 2.安装webpack,vue,vue-loader npm install webpack vue vue-loader 3.按装之后根据警告提示,安装css-loader,vue-template-conpiler依赖包. npm install css-loader vue-template-compiler 项目初始化基本完成. 一直遇到提示 install webpack-cli -D,即使安装了也没有用,索性直接删除了,之后可以

如何构建一个CMake项目(译)

CMake是一个能帮助你在几乎所有平台上构建C/C++项目的工具.很多流行的开源项目都使用了CMake,例如:LLVM, Qt, KDE 和 Blender. 所有的CMake项目都包含一个叫做 CMakelists.txt 的脚本,这篇博客就是为了指导如何配置和构建CMake项目而写作的.这篇博客不会告诉你如何编写CMake脚本-那样做的话有些超前了. 举个例子,我准备了一个使用SDL2 和 OpenGL来渲染一个3D logo的CMake项目,你可以在Windows, MacOS 或者 Li