摘要

  • vue简介
  • vue使用

一、Vue简介:

简介:

Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。

Vue是前端三大框架之一(Angular、Vue、React)

JS渐进式框架:一个页面小到一个变量,大到整个页面,均可以有vue控制,vue也可以控制整个项目

# 思考:vue如何做到一次引入控制整个项目 => 单页面应用 => vue基于组件的开发

初识vue,我们可以思考一下vue的工作原理:vue如何渲染一个页面

vue学习曲线:vue的指令 vue的实例成员 vue组件 vue项目开发

vue的优点:

①单页面:高效

②虚拟DOM:页面缓存

③数据的双向绑定:数据具有监听机制

④数据驱动:从数据触发,不是从DOM出发

vue的使用:

1、下载地址:https://cn.vuejs.org/v2/guide/installation.html

2、在html页面用<script> 标签引入使用

在html中书写挂载点的页面结构,用id表示
在自定义的script标签实例化Vue对象,传入一个大字典
在字典中通过 el与挂载点页面结构绑定,data为其通过数据

二、vue的基本使用:

点击事件:v-on:click="点击事件产生动作名称" 

<body>
<div id="app">
<!--{{ vue变量 }} 插值表达式-->
<h1 v-on:click="clickAction">{{ h1_msg }}</h1>
</div>
</body>
<script src="vue.js"></script>
<script>
new Vue({
el: '#app', // 挂载点
data: {
h1_msg: 'vue利用插值表达式渲染的变量内容',
},
methods: {
clickAction:function () {
alert(123)
}
}
})
</script>

 vue操作简单样式

<body>
<div id="app">
<p v-on:click="btnClick1" v-bind:style="v_style">点击p标签文字颜色变绿</p>
<div v-on:click="btnClick2" v-bind:style="v_style">点击div标签文字颜色变绿</div> </div>
</body>
<script src="vue.js"></script>
<script>
new Vue({
el: '#app', // 挂载点
data: {
v_style: {color: 'black'},
},
methods: {
btnClick1:function () {
this.v_style.color = 'green'
},
btnClick2:function () {
this.v_style.color = 'red'
}
}
})
</script>

小结:vue是通过v-*指令来控制标签,同时通过变量内的数据来驱动页面的渲染

vue相关指令认识:

文本指令
<body>
<div id="app">
<!--插值表达式另一种形式 v-text-->
<p>{{ msg1 }}</p>
<p v-text="msg2"></p>
<!--可以通过v-html来解析html标签-->
<p v-html="msg3" v-on:mouseover="action1"></p> <!--v-once,必须赋初值,且渲染的结果不会变化-->
<p v-once="msg4" v-on:mouseover="action">{{ msg4 }}</p> </div>
</body>
<script src="vue.js"></script>
<script>
new Vue({
el: '#app', // 挂载点
data: {
msg1: '**msg1**',
msg2: '<b>**msg2**</b>',
msg3: '<b>**msg3**</b>',
msg4: '**msg4**',
},
methods: {
action:function () {
this.msg4 = '**新的msg4**'
},
action1:function () {
this.msg3 = '**新的msg3**'
},
}
})
</script>

事件指令
<body>
<div id="app">
<!--v-on:事件名="函数名",这种表示可以进行简写:@事件名="函数名",也就是将v-on:简写成一个@代替-->
<p v-on:click="action1">{{ msgs[0] }}</p>
<p @click="action2">{{ msgs[1] }}</p> <!--事件的传参-->
<ul>
<li @click="liAction(100)">列表组1</li>
<li @click="liAction(200)">列表组2</li>
<li @click="liAction(300)">列表组3</li>
</ul>
<!--鼠标事件对象:直接写函数名,默认将鼠标事件对象传入-->
<div @click="func1">func1</div>
<!--鼠标事件对象,一但添加(),就必须手动传参,$event就代表鼠标事件对象-->
<div @click="func2($event, 'abc')">func2</div>
</div>
</body>
<script src="vue.js"></script>
<script>
new Vue({
el: '#app', // 挂载点
data: {
msgs: ['111', '222']
},
methods: {
action1:function () {
alert(this.msgs[0])
},
action2:function () {
alert(this.msgs[1])
},
liAction:function (num, msg) {
console.log(num, msg)
},
func1:function (ev) {
console.log(ev)
},
func2:function (ev,msg) {
console.log(ev);
console.log(msg)
},
}
})
</script>

属性指令
    <style>
.rDiv {
width: 100px;
height: 100px;
background-color: red;
}
.gDiv {
width: 100px;
height: 50px;
background-color: blue;
}
.br {
border-radius: 50%;
} </style>
</head>
<body>
<div id="app">
<!--属性指令:用vue绑定属性,将属性内容交给vue处理-->
<!--语法:v-bing:属性名="变量" (v-bind:可以简写为:)-->
<p class="" style="" v-bind:sgt="oo" :jason="xx"></p> <!--class 属性-->
<p :class="c1" @click="action1"></p>
<!--多个类名-->
<p :class="[c1, c2]"></p>
<!--'br'固定写死的数据,不再是变量-->
<p :class="[c1, 'br']"></p> <!--style属性-->
<!--一个变量:该变量的值为{},{}内部完成了一个个属性的设置-->
<p class="gDiv" :style="s1">12345</p>
<!--一个{},{}内是一个个属性,由一个个变量单独控制-->
<p class="gDiv" :style="{fontSize: fs, color: c}">67890</p>
</div>
</body>
<script src="vue.js"></script>
<script>
new Vue({
el: '#app', // 挂载点
data: {
oo: 'SGT',
xx: 'JASON',
c1: 'rDiv',
c2: 'br',
s1: {
fontSize: '30px',
color: 'black'
},
fs: '10px',
c: 'orange'
},
methods: {
action1:function () {
if (this.c1=='rDiv'){this.c1='gDiv'}
else{this.c1='rDiv'}
}
}, })
</script>

if条件指令

通过变量控制元素或组件的渲染与否,即控制相关元素的销毁与重建

<body>
<div id="app">
<!-- 条件指令 v-show | v-if-->
<!-- v-show:消失是以 display: none渲染 -->
<div class="div" v-show="s1">123</div>
<!-- v-if:消失时不会被渲染 -->
<div class="div" v-if="s2">456</div> </div>
<script src="vue.js"></script>
<script>
var app = new Vue({
el: '#app',
data: {
s1: false,
s2: true
}
})
</script>
</body>

#).v-show也用于根据条件控制元素的显示与隐藏,不同的是,v-show无论取何值,元素都会被渲染到dom结构,v-show的取值只是影响元素的display取值。

#).v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

v-model双向绑定指令
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<p>{{ message }}</p>
<input type="text" v-model="message"> </div>
<script src="vue.js"></script>
<script>
let app = new Vue({
el: '#app',
data:{
message: 'Hello Vue!'
}
})
</script>
</body>
</html>

Vue框架初识01的更多相关文章

  1. VUE框架的初识

    VUE框架的初识 初步了解Vue.js框架(渐进式前端框架) Vue.js是一种轻量级的前端MVVM框架.同时吸收了React(组件化)和Angular(灵活指令页面操作)的优点.是一套构建用户界面的 ...

  2. vue第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法)

    第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法) #课程目标 了解 vue 框架的特点 掌握创建 vue 实例 掌握 data ...

  3. 基于VUE框架 与 其他框架间的基本对比

    基于VUE框架的基本描述 与 其他框架间的基本对比 2018-11-03  11:01:14 A B React React 和 Vue 有许多相似之处,它们都有: 使用 Virtual DOM 提供 ...

  4. VUE框架学习——脚手架的搭建

    #我的VUE框架学习 题记:初识VUE,觉得VUE十分的不错,故决定去深入的了解学习它,工欲善其事,必先利其器,下面是我搭建vue环境的过程! #一.项目搭建及初始化 1.安装:node.js:去官网 ...

  5. Vue框架的介绍及使用

    Vue框架 定义:渐进式 JavaScript 框架 渐进式:可以控制一个页面的一个标签,可以控制一系列标签,也可以控制整个页面,甚至可以控制整个前台项目. 通过对框架的了解与运用程度,来决定其在整个 ...

  6. Vue框架Element的事件传递broadcast和dispatch方法分析

    前言 最近在学习饿了么的Vue前端框架Element,发现其源码中大量使用了$broadcast和$dispatch方法,而Element使用的是Vue2.0版本,众所周知在Vue 1.0升级到2.0 ...

  7. 使用vue框架运行npm run dev 时报错解决

    使用使用vue框架运行npm run dev 时报错 如下: 原因: localhost:8080 有可能其他软件占用了,导致其他问题的出现 我们可以动态修改地址 解决: 进入项目文件的config文 ...

  8. Vue框架下的node.js安装教程

    Vue框架下的node.js安装教程 python服务器.php  ->aphche.java ->tomcat.   iis -->它是一个可以运行JAVASCRIPTR 的运行环 ...

  9. Vue框架axios请求(类似于ajax请求)

    Vue框架axios get请求(类似于ajax请求) 首先介绍下,这个axios请求最明显的地方,通过这个请求进行提交的时候页面不会刷新 <!DOCTYPE html> <html ...

随机推荐

  1. Linux CentOS7 字符集

    CentOS 7字符集的问题与6有点区别,会出现下面问题,查看是中文,vi进入就变成乱码了 生产中修改配置文件  [root@ce1d2002a999 ~]# cat /etc/locale.conf ...

  2. k8s 基础概念

    摘录自k8s中文社区https://www.kubernetes.org.cn/course kubernetes 源自希腊文,意为舵手,k与s之间是8个字母,所以也叫k8s, docker就像一个个 ...

  3. 洛谷P1577 切绳子题解

    洛谷P1577 切绳子题解 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数). 输入输出格 ...

  4. LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力

    二次联通门 : LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 /* LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 叫做计算几 ...

  5. 洛谷P3177 树上染色

    题目 一道非常好的树形DP. 状态:\(dp[u][n]\)为u的子树选n个黑点所能得到的收益最大值. 则最终的结果就是\(dp[root][k],\)\(root\)可以为任何值,为了方便,使\(r ...

  6. python 运行当前目录下的所有文件

     查看当前目录下所有py文件(本身除外run) import os file_list = os.listdir(os.getcwd()) # 获取当前目录下所有的文件名print(file_list ...

  7. centos7安装mysql8 ERROR! The server quit without updating PID file

    原因mysql的安装目录在/etc/my.cnf配置不正确或者目录中的文件没有权限导致的,或者日志目录没有权限导致的 使用chwon -R mysql:mysql  mysql的日志目录后重启mysq ...

  8. 实验与作业(Python)-02 Python函数入门与温度转换程序(函数、input、eval、int、float、列表)

    截止日期 实验目标 学会定义函数,使用函数.学会导入在某个文件中定义的函数. input获得值,然后通过eval或者int.float将其转换为相应的类型. 学会使用列表:访问列表.append.遍历 ...

  9. [Web 安全] WASC 和 OWASP两个web安全方面组织机构介绍

    copy from :  http://blog.sina.com.cn/s/blog_70b7aab9010126mn.html WASC 和 OWASP.这两个组织在呼吁企业加强应用安全意识和指导 ...

  10. Linux Shell:根据指定的文件列表 或 map配置,进行文件位置转移

    读取配置文件,进行文件位置转移 在whenb.csv中指定了需要从/home/root/cf/下移除到/home/root/cf_wh/下文件列表,whenb.csv中包含记录如下: enb- enb ...