安装Vue的脚手架cli环境

1)官网下载并安装node,附带npm

https://nodejs.org/zh-cn/

node环境:

可以解释执行js语言

提供了npm应用商城,可以为node环境安装其他插件

提供了socket,可以提供npm命令来启动socket

2)换源:将npm欢迎为cnpm

  1. npm install -g cnpm --registry=https://registry.npm.taobao.org

3)安装vue脚手架

  1. cnpm install -g @vue/cli

注:如果第二三步异常,基本都是由网络导致的,可以重新执行第二三步,如果一直有问题,可以清理缓存后重复

  1. npm cache clean --force

创建项目

在终端中创建项目

  1. # cmd
  2. cd Desktop # 前往目标路径
  3. vue create v-proj # 创建项目名为v-proj

选择自定义安装:

Manually select features

分别勾选以下插件:

  1. Babel:将ES6语法解析为ES5语法给浏览器
  2. Router:前台路由
  3. Vuex:前台仓库,相当于单例,完成个组件间传参的

之后都是大Y走下去,注意,如果有洁癖,最后一步询问是否保存配置,选择N

项目移植

1)拷贝出环境 node_modules 以外的文件与文件夹到目标文件夹

2)终端进入目标文件夹所在位置

3)执行:npm install 重新构建依赖(npm可以用cnpm替换)

Pycharm配置并启动vue项目

  1. 用pycharm打开vue项目
  2. 添加配置npm启动

Vue项目目录结构分析

  1. ├── v-proj
  2. | ├── node_modules // 当前项目所有依赖,一般不可以移植给其他电脑环境
  3. | ├── public
  4. | | ├── favicon.ico // 标签图标
  5. | | └── index.html // 当前项目唯一的页面
  6. | ├── src
  7. | | ├── assets // 静态资源img、css、js
  8. | | ├── components // 小组件
  9. | | ├── views // 页面组件
  10. | | ├── App.vue // 根组件
  11. | | ├── main.js // 全局脚本文件(项目的入口)
  12. | | ├── router
  13. | | | └── index.js// 路由脚本文件(配置路由 url链接 与 页面组件的映射关系)
  14. | | └── store
  15. | | | └── index.js// 仓库脚本文件(vuex插件的配置文件,数据仓库)
  16. | ├── README.md
  17. └── package.json等配置文件

Vue组件

1)一个.vue文件就是一个组件

2)组件都是由三部分组成:html结构、js逻辑、css样式

html结构都是在template标签中,页面结构有且只有一个根标签(template一级结构下)

js逻辑都是在script标签中,必须设置导出,export default {...}

css样式都是在style标签中,必须设置scoped属性,是样式组件化

注:pycharm安装vue.js插件,就可以高亮显示vue文件了

  1. <template>
  2. <div class="first-cp">
  3. <h1>第一个组件</h1>
  4. </div>
  5. </template>
  6. <script>
  7. // .vue文件类似于模块,可以直接相互导入,所以在组件内部要设置导出
  8. export default {
  9. }
  10. </script>
  11. <style scoped>
  12. /* scoped可以使样式组件化,只在自己内部起作用 */
  13. </style>

全局脚本文件main.js

1)main.js是项目的入口文件

2)new Vue()就是创建根组件,用render读取一个.vue文件,$mount渲染替换index.html中的占位

3)项目所依赖的环境,比如:vue环境、路由环境、仓库环境、第三方环境、自定义环境都是在main.js中完成

  1. import Vue from 'vue'
  2. import App from './App.vue'
  3. import router from './router'
  4. import store from './store'
  5. Vue.config.productionTip = false
  6. new Vue({
  7. router,
  8. store,
  9. render: h => h(App)
  10. }).$mount('#app')

改写为下面的这样,其实,上面的就是由下面格式演变而来:

比如说下面vue中的el选择器同等于上面的.$mount('#app'),选中的是index.html中的app。

上面是单个router其实就是下面的router: router简写的。(js中如果属性名和变量名相等可以简写)

上面的箭头函数等同于下面的function函数。

一般我们是将App.vue替换index.html中的占位,但可以自己定义,例如下面的替换成了FirstCP.vue

一般情况下,此文件我们不需要做出改动,保持默认即可,使用上面默认即可,不需要进行下面的修改,下面的修改只是为了更好地理解上面的代码。

  1. import Vue from 'vue' // 加载vue环境
  2. import App from './App.vue' // 加载根组件
  3. import router from './router' // 加载路由环境
  4. import store from './store' // 加载数据仓库环境
  5. Vue.config.productionTip = false; // tip小提示
  6. import FirstCP from './views/FirstCP'
  7. new Vue({
  8. el: '#app',
  9. router: router,
  10. store: store,
  11. render: function (readVueFn) {
  12. return readVueFn(FirstCP); // 读取FirstCP.vue替换index.html中的占位
  13. }
  14. });

Vue的根组件

1)App.vue是项目的根组件,是唯一由main.js加载渲染的组件,就是替换index.html页面中的<div id="app"></div>的占位标签

2)实际开发中App.vue文件中,只需要书写下方五行代码即可(可以额外增加其他代码)

3)router-view是一个占位标签,由router插件控制,可以在router的配置文件中进行配置

4)router-view就是根据router在index.js中配置的路由关系被 指定路径 匹配 指定页面组件 渲染

5)router-view或被不同的页面组件替换,就形成了页面跳转

  1. <template>
  2. <div id="app">
  3. <!-- 前台路由占位标签,末尾的/代表单标签的结束 -->
  4. <router-view /> <!--此处会被vue组件替换并渲染,具体被谁替换,由router控制-->
  5. </div>
  6. </template>
  7. <style>
  8. body {
  9. margin: 0;
  10. }
  11. </style>

Vue的路由配置router

router目录下的index.js是Vue的路由系统,他控制着Vue的根组件中的<router-view />具体被哪个组件替换并渲染

路由配置:

1)当用户在浏览器中访问的路由是/,router插件就会加载 Home.vue文件,同理 /about 就是 About.vue文件

2)将加载的 Home.vue文件 或者 About.vue文件,去替换App.vue文件中的 <router-view />占位符

3)用redirect配置来实现路由的重定向

  1. import Vue from 'vue'
  2. import VueRouter from 'vue-router'
  3. // import 别名 from '文件'
  4. import Home from '../views/Home'
  5. import About from '../views/About'
  6. import First from '../views/FirstCP'
  7. Vue.use(VueRouter);
  8. // 路由配置
  9. // 1)当用户在浏览器中访问的路由是 / ,router插件就会加载 Home.vue文件,同理 /about 就是 About.vue文件
  10. // 2)将加载的 Home.vue文件 或者 About.vue文件,去替换App.vue文件中的 <router-view />占位符
  11. // 3)用redirect配置来实现路由的重定向
  12. const routes = [
  13. {
  14. path: '/',
  15. name: 'Home', // 类似反向解析的名字,可以利用属性指令在前台使用 :to='{name: 路由名}' eg:<router-link :to="{name: 'First'}">第一页</router-link>
  16. component: Home // 注册组件
  17. },
  18. {
  19. path: '/home',
  20. redirect: '/', // 路由的重定向
  21. },
  22. {
  23. path: '/about',
  24. name: 'About',
  25. component: About
  26. },
  27. {
  28. path: '/first',
  29. name: 'First',
  30. component: First
  31. }
  32. ];
  33. const router = new VueRouter({
  34. mode: 'history', // 此处控制是否开启历史功能,可以返回上一个页面
  35. base: process.env.BASE_URL,
  36. routes
  37. });
  38. export default router

Vue中components目录下的小组件

此目录下写的小组件,主要用于被组件使用,例如页面的导航栏可能好几个页面都需要一样的导航栏,那么就可以直接将小的组件拿过去使用;

其实Vue的组件本质上也是很多小组件渲染而成的,例如下面的components目录下的Nav.vue被引用到组件中的例子:

子组件代码示例:

  1. <template>
  2. <div class="nav">
  3. <img src="" />
  4. <ul>
  5. <li>
  6. <!-- router控制的路由,不是用a标签完成跳转:
  7. 1)a标签会刷新页面,错误的
  8. 2)router-link标签也能完成跳转,且不会刷新页面,就是router提供的a标签(最终会被解析为a标签,还是用a来控制样式)
  9. 3)router-link标签的to属性控制跳转路径,由两种方式
  10. i) to="路径字符串"
  11. ii :to="{name: '路由名'}"
  12. -->
  13. <a href="/">主页</a>
  14. </li>
  15. <li>
  16. <router-link to="/about">关于页</router-link>
  17. </li>
  18. <li>
  19. <!-- to="字符串",v-bind:to="变量",可以简写为 :to="变量" -->
  20. <router-link :to="{name: 'First'}">第一页</router-link>
  21. </li>
  22. </ul>
  23. </div>
  24. </template>
  25. <style scoped>
  26. .nav {
  27. width: 100%;
  28. height: 80px;
  29. background: rgba(0, 0, 0, 0.3);
  30. }
  31. img {
  32. width: 200px;
  33. height: 80px;
  34. background: tan;
  35. float: left;
  36. }
  37. ul {
  38. float: left;
  39. list-style: none;
  40. margin: 0;
  41. padding: 0;
  42. height: 80px;
  43. background: pink;
  44. }
  45. ul li {
  46. float: left;
  47. height: 80px;
  48. padding: 30px 20px 0;
  49. }
  50. a {
  51. color: black;
  52. }
  53. </style>

父组件代码示例:

  1. <template>
  2. <div class="home">
  3. <!-- vue项目下的html是支持大小写,且区分大小写 -->
  4. <Nav />
  5. </div>
  6. </template>
  7. <script>
  8. // 父组件加载子组件:父组件通常是页面组件,是被一个个小组件这些子组件组装成的页面
  9. // 1)导入语法要在 export default{} 之上完成
  10. // 2)@符合标识 项目src文件夹 绝对路径
  11. // 3)要在export default{} 的括号中用 components 注册
  12. // 4)在该组件的模板中就可以渲染子组件了(html代码中是区别大小写的)
  13. import Nav from '@/components/Nav'
  14. export default {
  15. components: {
  16. Nav,
  17. }
  18. }
  19. </script>
  20. <style scoped>
  21. .home {
  22. width: 100vw;
  23. height: 100vh;
  24. background-color: orange;
  25. }
  26. </style>

第四篇:Vue的项目开发的更多相关文章

  1. Vue.之.项目开发工具选用

    Vue.之.项目开发工具选用 上篇文章记录了创建项目,这篇文件记录,如何对创建的项目进行开发.这里选择一个工具:Visual Studio Code (请自行下载安装) 1. 打开VSCode工具,并 ...

  2. Vue 实战项目开发流程

    一 基础配备 ## 一.环境搭建 #### 1.安装node - 去[官网](https://nodejs.org/zh-cn/)下载node安装包 - 傻瓜式安装 - 万一安装后终端没有node环境 ...

  3. Eclipse插件开发 学习笔记 PDF 第一篇到第四篇 免分下载 开发基础 核心技术 高级进阶 综合实例

    <<Eclipse插件开发 学习笔记>>,本书由浅入深.有重点.有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章.第一篇介绍Eclipse平台界面开发的基础知识 ...

  4. Vue.js 项目开发学习路线图

    1. 思维导图 源文件:Vue路线图.xmind 参考文献 [1]. VueJs2.0建议学习路线 - lavyun - 博客园 [2]. Vue学习路线图 - 个人文章 - SegmentFault ...

  5. springboot第四篇:debug模式开发运用

    前提:项目是以maven project结构建立的,现状是无法进行断点调试的.怎么才能在eclipse里进行调试呢? 需要:①将项目打包部署到tomcat ②往项目加入dynamic web modu ...

  6. vue + yarn 项目开发 (一)

    1.打开src文件夹中的main.js文件,添加引用element ui框架 import ElementUI from 'element-ui' import 'element-ui/lib/the ...

  7. vue.js项目开发实战笔记001——准备工作

    1,Vue.js 是一套构建用户界面的渐进式框架. 2,Vue.js 是由尤雨溪开发出的,最早发布于2014年2月. 3,引用vue.js地址一CDN: <script src="ht ...

  8. 第四篇T语言实例开发,自动加血

    游戏自动加血 基础知识复习 通过前面的学习了解以下内容: TC软件的基本使用 TC的基础语法 变量与常量 功能的使用 流程语句的使用 线程的基本使用 TC控件的基本使用 热键和按钮的事件功能 控件的数 ...

  9. 译 PrestaShop开发者指南 第四篇 深入PrestaShop核心开发

    ## 访问数据库 ### 数据库结构 PrestaShop的数据库表默认带有ps_的前缀,前缀在安装时可以自定义. 所有表名都是小写,以下划线分割.当一个表表示要在两个实体间建立连接时,表名中两个实体 ...

随机推荐

  1. 笔记||Pyhton3进阶之多线程原理

    # 多线程 # 一个进程相当于一个或多个线程 # 当没有多线程编程时,一个进程也是一个主线程 # 但有多线程编程时,一个进程包含多个线程,包括主线程 # 使用线程 可以实现程序的并发 # python ...

  2. Numpy中 arange() 的用法

    1. 概述Numpy 中 arange() 主要是用于生成数组,具体用法如下: 2. arange()2.1 语法numpy.arange(start, stop, step, dtype = Non ...

  3. 如何:使用 as 和 is 运算符安全地进行强制转换(C# 编程指南)

    如何:使用 as 和 is 运算符安全地进行强制转换(C# 编程指南) 由于对象是多态的,因此基类类型的变量可以保存派生类型.若要访问派生类型的方法,需要将值强制转换回该派生类型.不过,在这些情况下, ...

  4. Python学习笔记001

    二进制 换算: 十进制转二进制 除二取余,然后倒序排列,高位补零. 将正的十进制数除以二,得到的商再除以二,依次类推知道商为零或一时为止,然后在旁边标出各步的余数,最后倒着写出来,高位补零就可以. 二 ...

  5. boost::program_options 解析命令行参数

    源码: #include <boost/program_options.hpp> namespace po = boost::program_options; int main(int a ...

  6. 引用类型--Object类型、Array类型

    引用类型的值(对象)是引用类型的一个实例.在ECMAScript中,引用类型是一种数据结构,它描述的是一类对象具有的属性和方法. 对象是某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数 ...

  7. sklearn学习笔记(1)--make_blobs函数及相应参数简介

    make_blobs方法: sklearn.datasets.make_blobs(n_samples=100,n_features=2,centers=3, cluster_std=1.0,cent ...

  8. MyEclipse 8.6.1 制作绿色版

    我们先在这个目录下新建一个文件: MyEclipse 10.6.bat , 文件内容如下: start eclipse\eclipse.exe -vm jre\bin\javaw.exe 接下来只需要 ...

  9. python内置函数二

    issubclass(a,b)   判断a类是否属于b的子类    返回为布尔值 locals()   显示局部变量 max()   取最大值 min()   取最小值 zip()    拉链方法  ...

  10. P1091 N-自守数

    1091 N-自守数 (15分)   如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”.例如 3,而 2 的末尾两位正好是 9,所以 9 是一个 3-自守 ...