当前位置: 首页 > news >正文

Vue--Vue基础(二)

Vue–Vue基础(二)

文章目录

  • Vue--Vue基础(二)
    • 1.Vue 指令详解
      • 1.1.v-if 条件渲染
      • 1.2.v-else 指令
      • 1.3.v-show 显示隐藏
      • 1.4 v-if vs v-show
      • 1.5 v-on 事件绑定
      • 1.6v-model 双向绑定
      • 1.7v-bind 属性绑定
      • 1.8v-for 列表渲染
    • 2.Vue 核心配置项
      • 2.1el
      • 2.2data
      • 2.3methods
    • 3.Vue 优点

1.Vue 指令详解

1.1.v-if 条件渲染

<div id="app"><p v-if="isShow">表达式的值为真,我就能显示</p>
</div><script>
new Vue({el:"#app",data: {isShow: true}
});
</script>

1.2.v-else 指令

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="js/vue.min.js"></script><title>条件渲染</title></head><body><div id="app"><h1 v-if="awesome">Vue is awesome</h1><h1 v-else>oh</h1></div><script>var app=new Vue({el:"#app",data:{awesome:false}})</script></body>
</html>

1.3.v-show 显示隐藏

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="js/vue.min.js"></script><title>v-show</title></head><body><div id="app"><h1 v-show="awesome">Vue is awesome</h1><h1 v-show="!awesome">oh</h1><button @click="awesome = !awesome">切换显示</button></div><script>var app = new Vue({el: "#app",data: {awesome: true}})</script></body>
</html>

1.4 v-if vs v-show

特性v-ifv-show
渲染机制条件为false时不渲染到DOM始终渲染,通过display控制显示
切换消耗高(涉及DOM操作)低(只是CSS切换)
初始渲染低消耗高消耗
适用场景条件不太可能改变需要频繁切换

1.5 v-on 事件绑定

<!-- 基本用法 -->
<button v-on:click='fn()'>点击</button><!-- 简写形式 -->
<button @click='fn'>点击</button><!-- 传递参数 -->
<button @click="say('Hi')">Hi</button><!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="js/vue.min.js"></script><title>事件处理</title></head><body><div id="example"><!-- <button v-on:click="greet">点击</button> --><button @click="greet()">点击</button></div><script>var app=new Vue({el:"#example",data:{message:"hello 99"},methods:{//方法必须定义到vue Menthods对象中greet:function(){alert(this.message);}}})</script></body>
</html>

1.6v-model 双向绑定

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="js/vue.min.js"></script>	<title>双向绑定v-model</title></head><body><!-- <div id="example">输入文本:<input type="text" v-model="message"/>{{message}}</div> --><div id="example"><input type="radio" name="sex" value="男" v-model="message" checked/>男<input type="radio" name="sex" value="女" v-model="message"/>女<p>选中了:{{message}}</p></div><script>var app=new Vue({el:"#example",data:{message:" "}});</script></body>
</html>

适用元素:表单元素(input、textarea、select等)

1.7v-bind 属性绑定

<!-- 基本用法 -->
<img v-bind:src="imageSrc"><!-- 简写形式 -->
<img :src="imageSrc"><!-- 动态类名 -->
<div :class="{ divclass: isRed }"></div><!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="js/vue.min.js"></script><title>v-bind示例</title></head><body><div id="app"><img v-bind:src="imageSrc"></div><script>var vm = new Vue({el: '#app',data: {imageSrc: "images/5.jpg",isRed: true}});</script></body>
</html>

1.8v-for 列表渲染

<div id="app"><!-- 遍历对象 --><li v-for="(value, key, index) in person">{{index}} - {{key}} - {{value}}</li><!-- 遍历数组 --><li v-for="(item, index) in lesson" :key="index">{{index}} - {{item.name}} - {{item.type}}</li><!-- 双层嵌套 --><li v-for="(item, index) in lesson"><span v-for="(childValue, index) in item.type">{{index}} - {{childValue}}</span></li>
</div><!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="js/vue.min.js"></script><title>列表渲染</title></head><body><table id="example" border="1" ><tr><td>序号</td><td>学号</td><td>姓名</td></tr><tr v-for="(item,index) in list"><td>{{(index+1)}}</td><td>{{item.StudentNo}}</td><td>{{item.StudentName}}</td></tr></table><script>var app=new Vue({el:"#example",data:{list:[{StudentName: "张三",StudentNo:1000},{StudentName: "李四",StudentNo:1001},{StudentName: "王五",StudentNo:1002}]}})</script></body>
</html>

key的作用:高效重用和重新排序现有元素,建议提供唯一标识

2.Vue 核心配置项

2.1el

  • 指定Vue实例挂载的元素
  • 值:选择器字符串或DOM元素

2.2data

  • 定义响应式数据
  • 在模板中通过插值表达式或指令使用

2.3methods

  • 定义方法
  • 在模板中通过v-on指令调用

3.Vue 优点

  • 简洁:模板+数据+实例,结构清晰
  • 轻量:35KB大小,性能优秀
  • 渐进式:可以边学边用,逐步深入
  • 数据驱动:视图与数据分离,无需直接操作DOM
  • 社区丰富:大量中文资料和开源案例
http://www.dtcms.com/a/438598.html

相关文章:

  • 高端网站建设搭建服装定制尺寸量身表
  • linux banner 设计
  • WordPress之家
  • php企业网站开发好学么承德网
  • 从技术史看:Unix 从何而来
  • qt 可以做网站吗优化师简历
  • DreamControl——结合扩散模型和RL的全身人形控制:利用在人体运动数据上训练得到的扩散先验,随后在仿真中引导RL策略完成特定任务
  • Spring Boot 实现邮件发送功能:整合 JavaMailSender 与 FreeMarker 模板
  • 新手理解的电子IO口
  • 网站开发完整项目案例做视频网站视频短片
  • 怎样自己做一个网站想创建一个网站
  • wordpress本站只对会员开放网站建设求职要求
  • PyQt5 QLineEdit案例大全:进阶实战应用指南
  • 技术博客SEO优化指南
  • 【LeetCode热题100(33/100)】排序链表
  • C++坑系列,C++ std::atomic 拷贝构造函数问题分析与解决方案
  • 视频网站做板块栏目asp.net企业网站
  • 如何做超一个电子商务网站做网站有个名字叫小廖
  • Font Awesome Web 应用图标
  • 校企合作下的中医实训室:如何实现 “教学 - 就业” 无缝衔接?
  • Python学习之Day04学习(持久存储与推倒数据)
  • 3100. 换水问题 II
  • 南宁网站搜索引擎优化上海做网站的的公司有哪些
  • P1420 最长连号
  • 渠道推广代理郑州厉害的seo优化顾问
  • LangChain源码分析(八)- Document加载器
  • Day91 基本情报技术者 单词表27 AI基礎
  • 质量管理方法
  • 【ATBS with Python】QA Chap1 Python Basics
  • Java 之继承与多态