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>
相关推荐
2501_920931707 小时前
React Native鸿蒙跨平台采用ScrollView的horizontal属性实现横向滚动实现特色游戏轮播和分类导航
javascript·react native·react.js·游戏·ecmascript·harmonyos
0思必得08 小时前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
东东5169 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino9 小时前
图片、文件的预览
前端·javascript
2501_9209317010 小时前
React Native鸿蒙跨平台实现推箱子游戏,完成玩家移动与箱子推动,当所有箱子都被推到目标位置时,玩家获胜
javascript·react native·react.js·游戏·ecmascript·harmonyos
layman052811 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔11 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李11 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN11 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒11 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局