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

1.Vue基础(@事件名+v-show+created+v-bind)

Vue基础

文章目录

  • Vue基础
    • 一.Vue简介
      • 1.定义:
      • 2.特点:
      • 3.建立vue程序步骤
    • 二.Vue的常用指令
      • 1.v-text和v-html
      • 2.`v-show`和v-if显示和隐藏数据
      • 3.v-on和`@事件名`触发事件
      • 4.v-bind设置元素属性
      • 5.`created`页面加载运行的代码块
      • 6.v-for
      • 7.`v-model`双向绑定

一.Vue简介

1.定义:

javaScript渐进式框架,方便操作页面的数据,显示数据

2.特点:

  • 响应式编程,页面的数据和js的数据是互相绑定的,当其中一个值发生变化,对应的值也会变化
  • 组件化,可以把页面元素功能封装起来(java的方法)

3.建立vue程序步骤

  1. 引入vue.js文件

     <!-- 引入js文件 -->
    <!--
    第一步:引入vue.js文件
    第二步:在body中定义div容器,并且绑定id
    作用
    (展示数据)
    第三步:定义vue对象作用(定义数据,操作数据)
    写vue的目的:定义数据,操作数据,显示数据
    --><script src="../js/vue.js"></script>
    
  2. html>>body中声明元素

     <div id="app"><!-- 插值表达式{{属性名}},直接获取的是数据第一级的 -->{{name}}<span>{{person.id}}</span><!-- 三元表达式 ,sex==1就是男,否则就是其他--><h3>{{person.sex==1?"男":"其他"}}</h3><!-- 通过下标索引拿到具体对象>>属性 --><h3>{{cars[0].engine}}</h3></div>
    
  3. script标签内声明vue对象

    <script>// 申明一个数组arraylet arr = [{ name: "arrn", age: 18 }, { name: "jerry", age: 19 }]console.log(arr[1].name);//通过下标获取具体数组内容// 申明一个对象let obj = {id: 1,name: "Arran",age: 18}console.log(obj.name);// 控制台输出console.log(1111);new Vue({el: "#app", //element指定vue对象操作的元素data: {//声明数据name: "hello!!!",person: {id: 1,name: "arran",age: 18,sex: 1},cars: [{ brand: "大众", engine: "200cc" }]},methods: {//定义方法,操作数据}})
    </script>
    

vue对象作用域范围: Array, object,string…

二.Vue的常用指令

​ this指向vue对象

1.v-text和v-html

<div v-html="sex1"></div>
  • v-text:更新数据内容,直接更新文本

    sex1:"女"
    //输出女
    
  • v-html: 替换文本同时会解析html标签

     sex1: '<span style="color: red"></span>'
    //输出: 男(红色)
    

2.v-show和v-if显示和隐藏数据

  • v-show是css样式控制display
  • v-if是删除dom元素
 <div id="app"><!-- v-show="flag" 属性值为true则显示否隐藏 --><!-- v-show和v-if区别: 1.show使用css样式隐藏,适用频繁调用;2.if使用注释删除 --><img v-show="flag" src="../img/on.png" alt="" width="200px" height="200px"><img v-if="flag" src="../img/on.png" alt="" width="200px" height="200px"><button @click="btn">显示|隐藏</button></div>
 <script>new Vue({el: "#app",data: {flag: true},methods: {btn() {//this指向vue对象this.flag = !this.flag}}})</script>

3.v-on和@事件名触发事件

click: 点击一次;   当鼠标点击,触发事件dblclick: 双击;当鼠标双击,触发事件focus: 获取焦点;  当得到了光标,触发事件blur: 失去焦点;   当失去了光标,触发事件mouseover:鼠标移至;  鼠标移至某标签上方,触发事件
monseentermouserout:鼠标移出; 鼠标移出某标签上方,触发事件keyup:键盘按下;  键盘按下,触发事件
input 内容发生改变
 <div id="app"><button @click="sub">-</button>//插值表达式{{num}}<button @click="add">+</button></div><script>new Vue({// 获取页面元素,#app选择器el: "#app",data: {num: 30},methods: {add() {// this指当前的Vue对象this.num++},sub() {this.num--}},})</script>

4.v-bind设置元素属性

<!--点击图片更换图片,类似开关操作-->
<div id="app"><!-- v-bind:src="imgSrc"可省略 不写 v-bind --><!-- 点击图片触发事件change --><img :src="imgSrc" @click="change" alt="" width="200px" height="200px"></div>
 <script>new Vue({el: "#app",data: {imgSrc: "../img/on.png"},methods: {change() {//点击触发事件if (this.imgSrc == "../img/on.png") {this.imgSrc = "../img/off.png"} else {this.imgSrc = "../img/on.png"}}}})</script>

5.created页面加载运行的代码块

页面加载就执行的代码块置于created()方法内

  // 页面加载时执行,每隔1s执行一次sub()created() {//每隔1s执行一次sub()方法//传递函数名(而不是函数调用)给另一个函数时,方法名后去掉()setInterval(this.sub, 1000)}

6.v-for

7.v-model双向绑定

输入框输入数据的同时插值表达式同时赋相同值

<body><div id="app"><form><!--输入框输入数据的同时插值表达式同时赋值--><p>用户名:<input type="text" v-model="username">{{username}}</p><p>帐户:<input type="text" v-model="account"></p><p>密码:<input type="password" v-model="password"></p><p>电话:<input type="tel" v-model="phone"></p><p>邮箱:<input type="email" v-model="email"></p><p>性别:<label for="man"><input type="radio" name="sex" id="man" value="m" v-model="sex"></label><label for="wm"><input type="radio" name="sex" id="wm" value="f" v-model="sex"></label>{{sex}}</p><p>年龄:<input type="text" v-model="age"></p><p>创建日期:<input type="datetime" v-model="date"></p><input type="button" value="提交" @click="commit"></form></div><script>new Vue({el: "#app",data: {username: "",account: "",password: "",phone: "",email: "",sex: "",age: "",date: ""},methods: {commit() {console.log(`${this.username},${this.account},${this.password},${this.phone},${this.email},${this.sex},${this.age},${this.date}`);}},created() {}})</script>
</body>

mmit() {
console.log(${this.username},${this.account},${this.password},${this.phone},${this.email},${this.sex},${this.age},${this.date});
}
},
created() {

        }})
</script>
~~~

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024 年 100 大数据科学面试问答
  • 字符的统计——423、657、551、696、467、535
  • Spring源码(六)--BeanFactory 实现与继承关系
  • Prompt工程:与AI聊天机器人更好地交流
  • 通俗地理解主动元数据管理
  • SQL Server 数据误删的恢复
  • 怎样实现大语言模型微调,庞氏骗局智能合约检查,BERT
  • Android SurfaceFlinger——GraphicBuffer初始化(二十九)
  • 反转链表 - 力扣(LeetCode)
  • 生成短链接如何实现?盘点可以生成短链接的工具
  • onnx转模型时遇到错误onnx.onnx_cpp2py_export.checker.ValidationError的解决思路
  • AI大模型零基础入门
  • mac系统使用vscode 写代码老是有叮咚的声音如何解决
  • Matlab基础语法篇(下)
  • MySQL中的MVCC(多版本并发控制)
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • bearychat的java client
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Gradle 5.0 正式版发布
  • HTTP 简介
  • JavaScript创建对象的四种方式
  • Javascript弹出层-初探
  • Linux CTF 逆向入门
  • MySQL主从复制读写分离及奇怪的问题
  • Python进阶细节
  • spark本地环境的搭建到运行第一个spark程序
  • Twitter赢在开放,三年创造奇迹
  • Vue全家桶实现一个Web App
  • Webpack 4 学习01(基础配置)
  • 从tcpdump抓包看TCP/IP协议
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端设计模式
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 实现简单的正则表达式引擎
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 自制字幕遮挡器
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #565. 查找之大编号
  • #git 撤消对文件的更改
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (35)远程识别(又称无人机识别)(二)
  • (C#)获取字符编码的类
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (补充)IDEA项目结构
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (剑指Offer)面试题34:丑数
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)UDP基本编程步骤
  • (转)linux下的时间函数使用
  • (自适应手机端)响应式服装服饰外贸企业网站模板