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>
相关推荐
AI砖家15 小时前
前端 JavaScript 异步处理全方案详解:从回调到 Observable
开发语言·前端·javascript
用户7138742290015 小时前
构建现代 Web 应用的令牌安全体系:Refresh Token Rotation、HttpOnly Cookie 与 Grace Period 全解析
前端
柒和远方15 小时前
每日一学V010: 从 Python 回到前端:一个 AI Native 开发者的 JavaScript 底层基础补全
javascript
之歆15 小时前
Day21_电商详情页核心技术实战:从LESS预处理到复杂交互实现
开发语言·前端·javascript·css·交互·less
海鸥两三15 小时前
基于 Vue 3 + 高德地图的网格规划系统实战(有源码)
前端·javascript·vue.js
逸A15 小时前
某里v2反混淆 codec 化路上踩到的两个隐蔽坑:被清零的 salt 与 opaque loop bound
javascript·人工智能·目标跟踪
丷丩15 小时前
MapLibre GL JS第11课:获取鼠标指针坐标
前端·javascript·gis·地图·mapbox·maplibre gl js
代码AI弗森15 小时前
前端周刊第 467 期[特殊字符] 本期精选目录
前端
随便的名字15 小时前
前端路由的底层逻辑:URL 中 # 和 ? 的区别与关系详解
前端
kongba00715 小时前
ttyd Web终端安装指南(OpenCloudOS 9)
linux·前端