Vue.js

vue是一个前端javascript框架,对javascript进行封装.

vue.js和 Angular.js、React.js 一起,并成为前端三大主流框架!

特点:1.体积小(封装的文件小)

2.更高的运行效率,不直接频繁的对网页上的标签进行操作,基于dom技术进行优化

3.实现数据双向绑定,程序员只关心要操作的数据即可,把数据渲染到标签上交给vue框架处理.

4.生态丰富、学习成本低

Vue 指令

指令带有前缀 v- 开头,以表示它们是 Vue 提供的特殊属性

v-text、v-html

javascript 复制代码
<div  id="app">
    <div>
        abc ,{{message}} ,123
    </div>
    <div v-html="message1">123</div>
    <div v-text="message1">123</div>
</div>
	
<script type="text/javascript">
    let app = new Vue({
    el:"#app",
    data:{
        message:"hello vue",
        message1:"<b>hello</b>",
        }
    });
</script>

{{message}} v-html,v-text区别

{{message}}不会覆盖标签体中的内容,只是在标签内部插入一个值

v-html和v-text 会用数据覆盖标签体中的内容

v-html:能解析字符串中的标签

v-text:不能解析字符串中的标签

v-on

作用是为元素绑定事件

事件名不需要写 on 指令可以简写为@

绑定的方法定义在 methods 属性中,可以传入自定义参数

javascript 复制代码
<input  type="button" value="按钮1" v-on:click="test1()"/>

<input  type="button" value="按钮2" @click="test1()"/>

let app = new Vue ({

        el:"#app",

        data:{//定义数据

                message:"hello"        

        }

        methods:{//定义函数

                test1(){

                        //函数实现

                }

        }

})

v-model

作用是便捷的设置和获取表单元素的值

绑定的数据会和表单元素值相关联

绑定的数据<---->表单元素的值 双向数据绑定

javascript 复制代码
<p>
    {{name}}	
</p>
<!-- v-model 可以将输入标签中的值  绑定到指定的属性上-->
<input type="text" value="" v-model="name"/>

v-show

javascript 复制代码
<!-- 
    v-show="布尔值"  根据布尔值显示或隐藏当前标签
    通过display的值控制标签显示或隐藏,每次不需要重新创建标签,效率高
-->
<div v-show="isshow">123</div>

isshow为true时显示,为false时隐藏

v-if

javascript 复制代码
<!-- 
    v-if="布尔值"  根据布尔值显示或隐藏当前标签
    每次从网页中要删除/创建标签,数量多了效率低
	v-if 和 v-else标签必须挨着
-->

<div v-if="boolean">aaa</div>
<div v-else>bbb</div>

v-show 和 v-if的区别

v-show 通过通过display的值控制标签显示或隐藏

v-if 每次从网页中要删除/创建标签

v-if 过多会可能影响网页性能

v-bind

作用是为元素绑定属性

完整写法是 v-bind:属性名

简写的话可以直接省略 v-bind,只保留:属性名

javascript 复制代码
<!-- <img  src="imgsrc"/> 错误写法,不能将data中的属性填充到普通标签属性中-->
<!-- <img  v-bind:src="imgsrc"/> -->
<img  :src="imgsrc" :title="title"/>
			 
			 
<!-- 通过isActive控制是否为标签添加指定的类名-->
<div v-bind:class="{ active: isActive }">状态</div>

v-for

作用是根据数据生成列表结构

数组经常和 v-for 结合

使用语法是(item,index)in 数据

item 和 index 可以结合其他指令一起使用

数组长度的更新会同步到页面上是响应式的

为循环绑定一个 key 值 :key="值" 尽可能唯一

javascript 复制代码
<div  id="app">
    <ul>
        <li v-for="p in provinces">{{p}}</li>
    </ul>
    <table border="1">
        <tr>
            <td>学号</td>
			<td>姓名</td>
			<td>性别</td>
		</tr>
		<tr v-for="student in students">
			<td>{{student.id}}</td>
			<td>{{student.name}}</td>
			<td>{{student.gender}}</td>
		</tr>
	</table>
</div>
	
<script type="text/javascript">
    let app = new Vue({
        el:"#app",
        data:{
            provinces:['北京','天津','上海','重庆','陕西'],
            students:[{id:1,name:'jim',gender:'男'},
                      {id:2,name:'tom',gender:'男'},
					  {id:3,name:'lili',gender:'女'},
					  {id:4,name:'lili',gender:'女'},
					  {id:5,name:'lili',gender:'女'}]
		}
	});
</script>
相关推荐
橙子家6 分钟前
浏览器缓存之【结构化数据库与缓存】: IndexedDB、Cache storage 和 Storage buckets
前端
user205855615181311 分钟前
X6 中边悬浮置顶,规避 `mouseleave` 事件丢失问题
前端
李明卫杭州13 分钟前
CSS aspect-ratio 属性完全指南
前端
Pedantic2 小时前
SwiftUI 手势层级(Gesture Hierarchy)详解
前端
飘尘2 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
一颗烂土豆3 小时前
Meshopt 压缩深度解析,为什么它比 Draco 更快
前端·javascript·webgl
浏览器工程师4 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
雨季mo浅忆4 小时前
VSCode自动格式化三要素
前端
爱勇宝4 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员