一、环境布置
二、第一个Vue程序
三、v-指令
1、v-bind:绑定
2、v-if,v-else,v-else-if:判断
3、v-for:循环
4、v-on:事件
5、v-model:双向绑定
四、组件
五、通信
六、计算属性
七、内容分发
首先安装vue插件
cdn vue.js:主要导入在我们前端页面上
Title
{{message}}
浏览器的控制台输入:
vm.message="hello"
可对浏览器页面上显示的结果进行修改
v-bind和{{}}差不多的意思
v-bind:title 鼠标放上信息显示
Title
我是谁!
v-if,v-else
Title
Yes
No
v-if,v-else,v-else-if
Title
A
B
C
D
不带索引
Title
{{item.message}}
带索引
Title
{{item.message}},{{index}}
各种事件
Title
是两边的messge信息绑定在一起
input:text:
Title
{{message}}
input:radio:
Title
男
女
选中了:{{message}}
select:
disabled属性:不能被选择
Title
选中了:{{message}}
类似于Thymeleaf的th:fragment
初体验:
Title
实现组件中数据的动态:
Title
我们vue推荐使用的通讯工具是Axios,当然使用JQuery的ajax也行。
Axios使用之前如果是个人版的idea,需要将idea的ES改成ES6(idea默认使用ES5.1,因为绝大多数的都用ES5)
Axios的cdn:
data.json文件
{
"name": "feiyue",
"level": 99,
"age": 18,
"skillList": [
{
"id": 1,
"name": "天下无双",
"damage": "123"
},
{
"id": 2,
"name": "雌雄难辨",
"damage": "182"
},
{
"id": 3,
"name": "暗流涌动",
"damage": "89"
}
]
}
浏览器控制台打印
Title
取出json并将其贴在网页上
Title
{{info.name}}
{{info.level}}
计算出来的结果保存在属性中,其实就类似于缓存的一种概念
Title
{{getTimesChange()}}
{{getTimesForever}}
computed与methods属性类似,只是methods 中的方法是通过方法调,而 computed中的方法是通过属性调。当computed与methods方法的方法名相同时,优先调用methods中的方法。
在说一下computed的计算属性的问题,只有在刷新页面和方法中的值发生改变的时候,方法的返回值才会发生改变,不然是不变的(return Date.now();)。有点类似与同一个请求的返回数据是一样的,原因是放在了缓存中。
v:bind: 可以缩写为一个:
v-on: 可以缩写为一个@
内容分发主要的概念就是一个插槽的概念,也就是
一个组件如果需要外部传入简单数据如数字、字符串等等的时候,可以使用property;如果需要传入js表达式或者对象时,可以使用事件;如果希望传入的是HTML标签,那么使用内容分发就再好不过了。
//通过slot="todo-title",绑定到todo组件的指定插槽中,并将代码整合
//通过slot="todo-items",绑定到todo组件的指定插槽中,并将代码整合
见名知意,就是做一个自定义一个事件,可以让v-on:绑定。
使用this.$emit(‘自定义事件名’,参数)
//从绑定的事件中获取i