目录
Vue是一款前端渐进式框架,可以提高前端开发效率。
Vue通过MVVM模式,能够实现视图与模型的双向绑定。简单来说,就是数据变化的时候, 页面会自动刷新, 页面变化的时候,数据也会自动变化.
Vue是一个类似于Jquery的一个JS框架,所以,如果想使用Vue,则在当前页面导入Vue.js文件即可。
-
- "app">
-
用户名:"text" v-model="name"/>
-
您输入的用户名是: {{name}}
-
插值表达式用户把vue中所定义的数据,显示在页面上. 插值表达式允许用户输入"JS代码片段"
语法:
{{ 变量名/对象.属性名 }}
案例:
- "en">
- "UTF-8">
-
vue插值表达式 -
- "app">
-
欢迎来到-->{{ name }}
-
-
v-text和v-html专门用来展示数据, 其作用和插值表达式类似。v-text和v-html可以避免插值闪烁问题。当网速比较慢时, 使用{{}}来展示数据, 有可能会产生插值闪烁问题。插值闪烁: 在数据未加载完成时,页面会显示出原始的{{}}, 过一会才会展示正常数据.
- v-text:"msg">
- v-html:"msg">
- v-text:把数据当作纯文本显示.
- v-html:遇到html标签,会正常解析
Vue的双向绑定可以实现: 数据变化的时候, 页面会自动刷新, 页面变化的时候,数据也会自动变化.
代码:
- "app">
- 用户名: "text" v-model="username"/>
代码:
- "app">
- "checkbox" v-model="agree">同意
效果:
代码:
- "app">
- "checkbox" value="Java" v-model="language">Java
- "checkbox" value="Python" v-model="language">Python
- "checkbox" value="Swift" v-model="language">Swift
效果:
概述:
Vue中也可以给页面元素绑定事件.
语法:
注意:
Vue支持html中所有已知事件. 如: @click, @submit等, 只不过事件的名字不带on
案例:
- "en">
- "UTF-8">
-
vue事件处理 -
- "app">
-
-
-
语法:
- v-for="item in items"
- v-for="(item,index) in items"
items:要迭代的数组
item:存储数组元素的变量名
index:迭代到的当前元素索引,从0开始。
代码:
- "app">
-
-
- for="(user, index) in users">
- {{index}}--{{user.name}}--{{user.age}}--{{user.gender}}
-
-
- var app = new Vue({
- el:"#app",//el即element,要渲染的页面元素
- data: {
- users:[
- {"name":"白卓冉","age":8,"gender":"男"},
- {"name":"白大锅","age":12,"gender":"女"},
- {"name":"白仙女","age":4,"gender":"男"}
- ]
- }
- });
概述:
:key 一般配合v-for一起使用. 用来在特定情况下, 保证被遍历的数组中的元素的顺序.
案例:
- "app">
-
-
-
-
- for="name in list" :key="name">
- "checkbox"> {{name}}
-
-
概述:
v-if与v-show可以根据条件的结果,来决定是否显示指定内容.
v-if: 条件不满足时, 元素不会存在.
v-show: 条件不满足时, 元素不会显示(但仍然存在).
案例:
- "app">
-
-
if="show">Hello v-if.
-
"show">Hello v-show.
- var app = new Vue({
- el:"#app",
- data: {
- show:true
- }
- });
概述:
v-bind的作用和插值表达式差不多, 只不过, v-bind主要用于动态设置标签的属性值
语法:
- <标签名 v-bind:标签属性名="vue实例中的数据属性名"/>
- <标签名 :标签属性名="vue实例中的数据属性名"/>
案例:
- "app">
- "button" :value="msg"/>