前端培训-Vue专题之Vue基础

九旬
• 阅读 2005

前端培训-Vue专题之Vue基础

简介

特点:MVVM框架,双向绑定,数据驱动,单页面,组件化。

区别

Vue 和 jQuery 的区别:不直接操作DOM,而是操作数据

案例:Hello World => 你好,世界

HTML代码:

<h1>{{msg}}</h1>

jQuery实现

$("h1").text("你好,世界");

Vue 实现

this.msg = '你好,世界'

创建项目

1、CDN

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

适合在已有的非Vue项目中,添加Vue,用于页面交互,知道就行了,用的不多。

2、Vue-Cli(推荐)

前后端分离项目的开发,

安装Node.js(Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。)

使用 NPM(Node Packages Modules,Node的包管理工具)下载

下载 Vue-Cli(基于 Vue.js 进行快速开发的完整系统)

使用命令行工具 cmd 、Git bash、VScode的终端都可以

# 全局安装vue-cli
npm install -g @vue/cli
# 创建一个新的项目
vue create project-name
# 启动
cd project-name
yarn server
# or
# 可视化的管理界面
vue ui

整个项目都用 Vue 开发

项目结构

需要开发的项目文件都在 src 目录下面 前端培训-Vue专题之Vue基础 补充:node_modules:项目依赖包(通过npm install安装)

常用命令

  1. 安装依赖:npm install/yarn/cnpm install
  2. 启动服务:npm run dev/npm run serve
  3. 项目打包:npm run build

2-3参考package.json文件的script对象

切换源

解决 npm 服务器在国内网速慢、丢包的问题。

下载开发工具:VScode下载

安装插件:Extensions for VScode

  • Vetur
  • ESLint

    调试工具

Vue-Devtool插件安装

参考:Vue.js中文官网

v-for / v-key

v-if / v-show

v-bind / :

v-model

v-on:click / @click

生命周期

参考:Vue生命周期,示意图:图片

  • beforeCreate(创建之前)
  • created(创建之后)
  • beforeMount(挂载之前)
  • mounted(挂载之后)
  • beforeUpdate(更新之前)
  • updated(更新之后)
  • beforeDestory(销毁之前)
  • destroyed(销毁之后)

    组件

组件化开发是 Vue 的一大特点,组件化开发极大的提升了代码的可复用性,也方便团队分工协作开发。

封装组件

# /src/components/Button.vue
<template>
  <div>
    <button>{{ text }}</button>
  </div>
</template>
<script>
export default {
  props: {
    text: String,
  },
};
</script>

使用组件

# /src/view/about.vue
<template>
  <div class="about">
    <h1>This is an about page</h1>
    <Button :text="ButtonText"></Button>
  </div>
</template>
<script>
import Button from "@/components/Button.vue";
export default {
  components: {
    Button,
  },
  data: function() {
    return {
      ButtonText: "我是一个按钮",
    };
  },
};
</script>

组件传参

使用 props

第三方组件库

PC端:iView、Element、Ant Design

移动端:Vant、cube-ui

iView

官网地址:iView

下载组件

npm install view-design --save

全局使用组件

// main.js
import ViewUI from 'view-design';
import 'view-design/dist/styles/iview.css';
Vue.use(ViewUI);

ivew-admin

iView-admin是iView生态中的成员之一,是一套采用前后端分离开发模式,基于Vue的后台管理系统前端解决方案。iView-admin2.0脱离1.x版本进行重构,换用Webpack4.0 + Vue-cli3.0作为基本开发环境。内置了开发后台管理系统常用的逻辑功能,和开箱即用的业务组件,旨在让开发者能够以最小的成本开发后台管理系统,降低开发量。

地址:iview-admin

其他插件

Vue-router

路由插件

两种模式

  • hash / #
  • history / 历史记录

    Axios

HTTP请求库

安装

npm install axios --save

vue.config.js 配置代理

const URL = 'https://cnodejs.org'; // 请求的地址
module.exports = {
    outputDir: 'dist',
    publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
    devServer: {
        disableHostCheck: true,
        port: 8080,
        open: true,
        proxy: {
            '/api': { // /api =》'https://cnodejs.org'
                target: URL
            }
        }
    }
};

Vuex

状态管理

打包上线

在项目开发完成之后,使用npm run build命令来打包项目,打包完成后会生成 dist 文件夹

项目上线时,直接将dist文件夹放到服务器即可

练习

  1. v-if和v-show的区别?
  2. 动态绑定class的用法?
  3. 试着封装/使用一个组件?

来自九旬的原创文章

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
九旬
九旬
Lv1
男 · 北京 · 前端
种一棵树最好的时间在十年前,其次是现在。
文章
6
粉丝
3
获赞
7