一。简介

  vue是一个渐进式的js框架。具体介绍查看官网:

  https://cn.vuejs.org

  在vue框架中,有两个文件,当在开发阶段时使用完整版vue,因为有报错信息,而在上市阶段可以使用min版本的vue。

  vue不同于js和jquery的是,他是数据驱动框架而非事件驱动框架。也就是说其中是对数据进行实时监听的。

  vue结合了其他框架的优点,轻巧,中文api,双向绑定,双向绑定意味着其中是mvvm模式。

  vue的导入可以使用cdn:

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

二。挂载点。

  对于vue框架来说,vue的设计理念是钩子,他可以对class类进行挂钩,也可以对唯一的id进行挂钩:

<div id="wrap">
{{ }}
<hr>
<div class="main">
{{ }}
</div>
<hr>
<div class="main">
{{ }}
</div>
</div>
<script src="js/vue.js"></script>
<script>
new Vue({
el: '#wrap' // el表示挂载点
})
</script>

  而使用类作为挂载点时,只会绑定第一个符合的元素。

三。数据。

  用实例成员data为vue环境提供数据,数据采用字典{}形式。

  在插值表达式{{}}中,直接书写数据的key来访问数据。

  在外部通过接受实例的变量app,访问实例成员(实例成员都用$开头),间接访问到数据。

  app.$data.info。

  在外部也可以通过实例变量app直接访问数据。

  app.info。

  在vue实例内部的方法methods中,使用变量,this.info (this其实就是等价于app)

  所有的数据都可以通过键值对的形式写入data中。

  而其中的key就是默认的字符串,不加双引号也行,

四。过滤器。

  在django中的过滤器只能传入一个参数,会将|前面的数据作为参数传入filter。

  而在vue中,过滤器可以定义多个参数,而且会将|前的多个参数传入后面的过滤器:

<p>{{ 10, 20, 30, 40 | f2 }}</p>
f2: function (a, b, c, d) {
console.log(a, b, c, d);
return a + b + c + d
}

  而且,可以将这些参数分开进行传参,

<p>{{ 10, 20 | f2(50, 80) }}</p>
f2: function (a, b, c, d) {
console.log(a, b, c, d);
return a + b + c + d
}

  其中,当过滤器的参数缺少时,会以unsigned的值进行传入。多参数则忽略。

  vue中也支持一些粗劣计算和一些函数的处理:

        <p>{{ num + 3.5 }}</p>
<p>{{ msg.split('')[4] }}</p>

五,文本指令

  首先,要在一个元素中显示一段字符串,可以调用data数据:

<p>{{ info }}</p>

  而如果需要使用属性控制变量则需要使用关键字v-text:

<p v-text="info"></p>

  v-text中值可以时数字,和布尔值,和变量,如果需要变成字符串,要再次加单引号:

    <p v-text="123"></p>
<p v-text="true"></p>
<p v-text="'abc' + info"></p>
<p v-text="[1, 2, 3]"></p>

  当然可以使用v-html进行html元素的传输:

<p v-html="`<b style='color:red'>好的</b>`"></p>

  其中需要注意的是需要使用反引号·将所有的语句括起来。使用v-text则不会有这样的效果。

六。事件指令:

  1) 语法:v-on:事件名="函数名(参数们)"

  2) 简写:@事件名="函数名(参数们)"

  3) 用methods实例成员提供 事件函数 的实现

  4) 事件传参:函数名 | 函数名() | 函数名(自定义参数) | 函数名($event, 自定义参数)

  其中,on后的事件有:click,mouseover等事件。也可以简写成@mouseover。

  函数可以使用function,也可以省略:

        <p class="low-num" v-on:click="lowNum">
<span>点击减一:</span>
<span>{{ num }}</span>
</p>
lowNum: function () {
// 在vue实例内部的方法中,使用变量
// alert(this.num)
this.num -= 1;
},
dblAction (ev) {
// alert('双击事件');
console.log(ev)
},

  当事件函数未绑定值时,会有一个默认函数,该值就是点击事件的具体值。

  当事件绑定参数时,想要获得事件,需要使用$event进行绑定传参。

<p @mouseover="overAction(10, 20, $event)">悬浮3</p>
overAction(a, b, c) {
console.log(a, b, c)
}

七。属性指令

  在vue框架的渲染下可以使用v-bind:属性名="变量",进行绑定属性指令,也可以简写:属性名="变量"。

  当属性时非v-bind时,他所拥有的值可以是任何值,而一旦以:加修饰之后,其值就必须是data中的变量,如果想要绑定非变量的字符串作为值,需要使用单引号:

        <p v-bind:index="p1">自定义属性也可以被vue绑定1</p>
<!--2) v-bind:属性名="变量" 简写 :属性名="变量" -->
<p :index="p1">自定义属性也可以被vue绑定2</p>
<p :title="'文本提示'">悬浮文本提示</p>

  其中有两个属性需要拥有值才能被渲染:class和style

  style中的变量可以是一个字典,字典中不支持-格式的语法,需要转换成驼峰法:

        <p :style="myStyle">样式绑定1</p>
<p :style="{backgroundColor: c1, color: c2,
'border-radius': '50%'}">样式绑定2</p>
myStyle: {
backgroundColor: 'pink',
color: 'deeppink',
'border-radius': '50%'
},
c1: 'cyan',
c2: 'tan',

  也可以直接将字典作为值放入style中,其中的value是变量。

  一般的,想要绑定一个样式,可以使用class进行绑定:

  可以使用变量进绑定:

<p :class="myc1">样式绑定3</p>

myc1: 'ccc ddd eee',

  也可以使用数组进行绑定:

<p :class="[myc2,myc3,myc4,'bbb']">样式绑定4</p>
myc2: 'ccc1',
myc3: 'ccc2',
myc4: 'ccc3',

  其中的区别在于数组中的值是互不相干的。而且也可以使用‘’的方式进行固定的类绑定。

  也可以使用字典加布尔类型的方式进行绑定:

<p :class="{xxx:yyy}">样式绑定5</p>

yyy: true,  // false

  如果yyy的值是true,那么就有xx这个属性。否则没有

  其中数组的方法也可以这么用:

:class="[c1, {right:r, top:t, bottom:b}]" 

八。表单指令。

  在表单中,,所有的值都是通过value显示出来,而使用vue中的v-model操作value则会实时监听:

  当text表单时:

            <input class="inp1" type="text" v-model="info">
<input class="inp2" type="text" v-model="info">

  其所有的值会映射给绑定的变量,包括{{}}中的值。

  当是单独复选框时:

 是否同意:<input type="checkbox" name="agree" v-model="isAgree">
<!--是否同意:<input type="checkbox" name="agree"
true-value="yes" false-value="no" v-model="isAgree">-->
<p>{{ isAgree }}</p>

data: {
info: '123',
isAgree: 0,
// isAgree: 'no',
mysex: 'others',
myhobbies: ['male', 'female']
}

 

  如果其中没有选择,则没有值,如果选择了,则isargee中的值是isagree中值(布尔值)。

  这个值可以通过:true-value,false-value进行绑定,返回的值就是设置的值,而且下面的变量值也需要是这两个值中的一个。

  当时单选框的时侯,所有的名字都是一样的:

性取向:
男 <input type="radio" name="sex" value="male" v-model="mysex">
女 <input type="radio" name="sex" value="female" v-model="mysex">
哇塞 <input type="radio" name="sex" value="others" v-model="mysex">
<p>{{ mysex }}</p> data: {
info: '123',
isAgree: 0,
// isAgree: 'no',
mysex: 'others',
myhobbies: ['male', 'female']
}

  其中mysex就可以是该单选框的默认值,而这些选中的框也就是mysex的值。

  多选框,所反阔的是列表:

 兴趣爱好:
男 <input type="checkbox" name="hobbies" value="male" v-model="myhobbies">
女 <input type="checkbox" name="hobbies" value="female" v-model="myhobbies">
哇塞 <input type="checkbox" name="hobbies" value="others" v-model="myhobbies">
<p>{{ myhobbies }}</p>
data: {
info: '123',
isAgree: 0,
// isAgree: 'no',
mysex: 'others',
myhobbies: ['male', 'female']
}

  这些都符合双向反馈。

补充:

1.js对象(字典补充):

let b = 20;
let dic = {
a: 10, // 字典本身就是对象,key都是字符串形式可以省略引号
b // 值为变量时,且与key同名,可以简写
};
console.log(dic)

2。反引号补充:

// 1) js多行字符串 反引号 ``
// 2) 反引号字符串中可以直接填充变量,语法为 `${变量名}`
let s1 = `第一行
第二行
结束行`;
console.log(s1); let name = 'Owen';
let age = 17.5;
let s2 = `
name: ${name}
age: ${age}
`;
console.log(s2);

  其中反引号中可以使用${}传入变量进行显示字符串。

day64_10_8 vue的导入的更多相关文章

  1. vue Excel导入,下载Excel模板,导出Excel

    vue  Excel导入,下载Excel模板,导出Excel vue  Excel导入,下载Excel模板 <template> <div style="display: ...

  2. Webpack+Vue如何导入Jquery和Jquery的第三方插件

    创建一个jquery-vendor.js文件 import $ from 'jQuery'; console.log($); window.$ = $; window.jQuery = $; expo ...

  3. vue之导入Bootstrap以及jQuery的两种方式

    Vue引入bootstrap主要有两种方法 方法一:在main.js中引入,此方法导入的bootstrap中对于html,body的一些预设置的css样式可能无效. 一.引入jQuery 在当前项目的 ...

  4. vue学习【第七篇】:Vue之导入Bootstrap

    Vue引入bootstrap主要有两种方法 方法一:在main.js中引入 此方法导入的bootstrap中对于html,body的一些预设置的css样式可能无效 引入jQuery 在当前项目的目录下 ...

  5. vue之导入Bootstrap和Jquery

    Vue引入bootstrap主要有两种方法 方法一:在main.js中引入,此方法导入的bootstrap中对于html,body的一些预设置的css样式可能无效. 一.引入jQuery 在当前项目的 ...

  6. vue如何导入外部js文件(es6)

    也许大家都是使用习惯了es5的写法喜欢直接用<Script>标签倒入js文件,但是很是可惜,这写法.在es6,或则说vue环境下不支持 真的写法是怎样? 首先.我们要改造我们要映入的外部j ...

  7. vue框架导入百度地图API接口的方法

    百度请求API接口:

  8. vue中导入外面文件(css,js)方式

    有时我们需要导入外面的css文件(例如reset.css文件,bootstrap.css,jQuery.js文件),通常可通过import "name.css"的形式 对于rese ...

  9. vue项目导入excel单列导入

    先安装 xlsx.js, 然后引入 import XLSX from 'xlsx'; 代码 <form> <span> <textarea name="cont ...

随机推荐

  1. 使用EA将源码转化为类图

    EA简介: EA 全名 Enterprise Architect,是一款著名的 UML 建模软件.在软件架构设计与逆向工程中具有重要作用.软件十分小巧(< 60MB ),并且有汉化破解版.推荐大 ...

  2. Element-ui 中的Dialog 对话框

    给表头添加一个底部分割线 固定表格的内容高度 添加底部按钮 <template> <div> <el-button type="text" @clic ...

  3. 集成Hive和HBase

    1. MapReduce 用MapReduce将数据从本地文件系统导入到HBase的表中, 比如从HBase中读取一些原始数据后使用MapReduce做数据分析. 结合计算型框架进行计算统计查看HBa ...

  4. vscode源码分析【二】程序的启动逻辑,第一个窗口是如何创建的

    上一篇文章:https://www.cnblogs.com/liulun/ (小广告:我做的开源免费的,个人知识管理及自媒体营销工具“想学吗”:https://github.com/xland/xia ...

  5. vscode常用快捷键与插件推荐

    一.vscode常用快捷键 1.新建文件:chtr+n 2.新开窗口:ctrl+shift+n 3.分屏:ctrl+1/2/3  4.切换文件:alt+1/2/3或ctrl+tab 5.关闭当前窗口: ...

  6. @Transactional什么情况才生效

    只有runtimeexception并且没有被try catch处理的异常才会回滚. 想要回滚,不要去try 还有一个坑时逻辑上的问题,之前总以为插入,更新后,返回值为0,@Transactional ...

  7. Zabbix 系列文章

    Zabbix 所有文章目录 本系列文章都基于 Zabbix 4.0 , Zabbix 4.0 是属于长期支持版本,其它的长期支持版本有 3.0 .2.2 . 官方已经有中文文档, 官方文档链接: Za ...

  8. MySQL EXPLAIN 语句

    对于 MySQL 在执行时来说,EXPLAIN 功能上与 DESCRIBE 一样.实际运用中,后者多用来获取表的信息,而前者多用于展示 MySQL 会如何执行 SQL 语句(Obtaining Exe ...

  9. FastJson中的ObjectMapper对象的使用详解

    写在前面:开发中经常用到json和对象的相互转换,下面将列出FastJson中ObjectMapper对象的API的使用 一.maven工程中pom导入<dependency> <g ...

  10. IIS安装和ASP.NET Web应用程序开发期间部署到IIS自定义主机域名并附加进程调试

    一.IIS安装,此处以Windows10操作系统为例 首先依次进入控制面板=>程序=>程序与功能=>启用或关闭Windows功能 将Internet开头的三个选项全部打钩后点击确定安 ...