在github搜小程序我们可以看到许多用许多用vue开发的实例。

到底什么是vue,我们不妨浪费一天时间来了解一下。

一、什么是vue

Vue是一个JavaScript框架。作者是国内常年混迹知乎的一个前端大神。

它的特点是响应式的双向数据绑定,和小程序很相似。

vue官网地址:https://cn.vuejs.org/

二、学习vue需要掌握什么基础

1、掌握HTML/CSS/JavaScript/AJAX基础知识

2、掌握VSCode基本操作,如果对这个工具不了解可以看我上一篇文章

三、vue入门

1、安装vue非常简单,只需要新建一个html,通过如下方式引入vue:

2、vue一个完整的入门案例

            Vue基础    
{{ message }}

var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } })

运行结果。可以看到div里展示的是js里面的data的值

四、el挂载点

js里有一句话:el: '.app'。意思是html里id="app"的标签里的数据都受vue管理,可以使用{{xxx}}的方式去获取data里的值。

el注意事项:

  • el元素命中的外部,不被vue管理

  • el元素命中的内部也被vue管理,可以被其他元素嵌套

  • el可以用其他选择器,但是主要推荐用id选择器

  • el支持大部分双标签(不支持html和body标签),不支持单标签

            Vue基础    {{ message }}    
{{ message }} {{ message }}

var app = new Vue({ //el: '#app', el: '.app', data: { message: 'Hello Vue!' } })

五、data数据对象

data里的数据可以是字符串、对象、数据。

获取具体值的方式和小程序一样。

下面是data数据对象案例:

    
{{ list[0] }} {{ school }}

{{ school.mobile }}

var app = new Vue({ //el: '#app', el: '.app', data: { message: 'Hello Vue!', list:['a','b','c'], school:{ "name":"大地幼儿园", "mobile":"123456" } } })

六、vue常用指令

1、v-text

  • v-text的作用是设置标签的内容

  • 默认的写法会替换全部内容

  • 如果要部分替换,使用{{}}

    

快乐

快乐

{{ message }}快乐

var app = new Vue({ //el: '#app', el: '#app', data: { message: "你好中国!!!", info: "前端" } })

页面展示:

2、v-html

  • v-html的作用是设置语速的innerHTML

  • 内容中有html结构会被解析成为标签

  • v-text指令无论什么内容,只会被解析为文本

                        var app = new Vue({            //el: '#app',            el: '#app',            data: {                // content:"你好"                content:"你好"            }        })

页面展示:

3、v-on为元素绑定事件

  • v-on的作用:为元素绑定事件

  • 事件名不需要写on

  • 指令可以简写成@

  • 绑定的方法定义在methods属性中

  • 方法内部通过this关键字可以访问定义在data中的数据

    

{{food}}

var app = new Vue({ el: '#app', data:{ food:"番茄" }, methods:{ doIt:function(){ alert("hello") }, changefood:function(){ // console.log(this.food) this.food += "炒蛋" } } })

页面展示:

4、v-show

  • v-show的作用:根据表达式的真假切换元素的显示状态

  • 指令后面的内容,最终都会解析为布尔值

  • 值为true元素显示,值为false元素隐藏

  • 数据改变之后,对应元素的显示状态会同步更新

    
切换

var app = new Vue({ el: '#app', data: { isShow: false, age:19 }, methods:{ change:function(){ this.isShow = !this.isShow; } } })

页面展示:

5、v-if

  • v-if作用是根据表达式的真假切换元素的显示状态

  • 本质是通过操纵dom元素来切换显示状态

  • 频繁切换用v-show,反之用v-if,因为前者的切换消耗小

    
切换

路飞

热死啦

var app = new Vue({ el: '#app', data: { isShow: false, temp: 20 }, methods:{ change:function(){ this.isShow = !this.isShow; } } })

页面展示:

6、v-bind

  • v-bind的作用是为元素绑定属性

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

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

  • 需要动态的增删class建议使用对象的方式

            Vue基础            .active{            border: 1px solid red;        }    

var app = new Vue({ el: '#app', data: { imgSrc: "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1132362758,4197603989&fm=26&gp=0.jpg", imgTitle: "Test", isActive:false }, methods:{ changeActive:function(){ this.isActive = !this.isActive; } } })

7、v-for

  • v-for的作用是根据数据生成列表结构

  • 数组经常和v-for结合使用

  • 语法是(item,index) in 数据

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

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

    
{{ index+1 }}、城市:{{ item }} {{ ind }} {{ it.name }}

var app = new Vue({ el: '#app', data: { arr:['北京','上海','广州','深圳'], vagetables:[{name:'番茄'},{name:'鸡蛋'}] }, methods:{ add:function(){ this.vagetables.push({name:'添加'}) }, remove:function(){ this.vagetables.shift(); } } })

8、v-on补充

  • 事件绑定的方法写成函数调用的形式,可以传入自定义参数

  • 定义方法时需要定义形参来接收传入的实参

  • 时间的后面跟上 .修饰符 可以对事件进行限制

  • .enter 可以限制触发的按键为回车

  • 事件修饰符有多钟

                        var app = new Vue({            el: '#app',            methods:{                doIt:function(p1,p2){                    console.log(p1);                    console.log(p2)                },                sayHi:function(){                    alert("吃了没")                }            }        })

9、v-model 获取和设置表单元素的值(双向数据绑定)

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

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

  • 绑定的元素表单元素的值

    

{{ message }}

var app = new Vue({ el: '#app', data: { message:"王路飞" }, methods:{ getM:function(){ alert(this.message) }, setM:function(){ this.message = "李索隆" } } })

七、小案例

1、案例——计数器

  • 功能:有左右两个按钮,点击调整数字大小,超过数字最大最小值报错

案例代码:

    
- {{ num }} +

var app = new Vue({ el: '#app', data:{ num:1 }, methods:{ sub:function(){ if(this.num>0){ this.num -- }else{ alert("0是最小值") } }, add:function(){ if(this.num<10){ this.num ++ }else{ alert("10是最大值") } } } })body>

案例展示:

2、案例——记事本

  • 功能:输入框记录后点回车保存记录,点击删除按钮删除记录,点击清空按钮清空记录。

案例代码:

<body>    <section id="todoapp">                <header class="header">            <h1>记事本h1>            <input type="text" autofocus="autofocus" autocomplete="off" placeholder="请输入任务" v-model="inputValue" @keyup.enter="add">        header>                <section class="main">            <ul>                <li v-for="(item,index) in list">                    <span> {{ index+1 }} span>                    <label>{{ item }}label>                    <button @click="del(index)">删除button>                li>            ul>        section>                <footer class="footer">            <span v-if="list.length!=0"> <strong> {{ list.length}} strong> items leftspan>            <br>            <button @click="clear" v-if="list.length!=0"> 清空button>        footer>    section>        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>    <script>        var app = new Vue({          el:"#todoapp",          data:{              list:[],              inputValue:""          },          methods:{              add:function(){                  this.list.push(this.inputValue);                  this.inputValue=""              },              del:function(index){                 //从第index位删除0个,新增一个hello                //  this.list.splice(index,0,'hello')                //从第index位开始删除1个,添加0个                this.list.splice(index,1);              },              clear:function(){                this.list=[];              }          }        })script>body>

案例展示:

以上教程都是基于vue2.0版本来编写。

上周作者发布了vue3.0版本——One Piece,官网地址:

https://github.com/vuejs/vue-next/releases/tag/v3.0.0

在大航海时代,你更愿意当路飞还是克比呢?

vue 回车查询 按钮_从零开始学习vue相关推荐

  1. vue 回车查询 按钮_前后端分离商城,前端基于Vue后端nodejs包含小程序源码免费分享...

    先转发,然后加关注,私信"购物"即可获取源码下载链接 项目简介 本项目前后端分离,前端基于Vue+Vue-router+Vuex+Element-ui+Axios,参考小米商城实现 ...

  2. jenkins vue 打包特别慢_从零开始 使用VUE开发桌面客户端

    Electron 是一个非常强大的工具,它可以用来构建跨平台的桌面应用,编写一次到处运行. 知乎视频​www.zhihu.com 0. 准备工作 安装好nodejs 在终端中输入 node -v 看到 ...

  3. vue 回车查询 按钮_vue之在页面中监听键盘的Enter键来触发某个按钮事件

    项目中得需求:给页面某个按钮绑定Enter键,但是按钮不在form中,直接给按钮绑定后此按钮只有获取了焦点按键才会触发,显然,一直保持按钮获取焦点是不现实得.所以通过查询等,结合项目需求,完成了下面得 ...

  4. vue 所有按钮属性、vue Button 所有按钮属性事件、vue a-button 所有按钮属性事件、vue 按钮所有属性事件、vue

    vue 所有按钮属性.vue Button 所有按钮属性事件.vue a-button 所有按钮属性事件.vue 按钮所有属性事件.vue 1.组件注册 1.按钮类型 2.按钮组合 3.不可用状态 4 ...

  5. vue + element ui 的后台管理系统框架_从零开始搭建 VUE + Element UI后台管理系统框架...

    点击右上方红色按钮关注"web秀",让你真正秀起来 前言 后台管理系统前端框架,现在很流行的形式都是,上方和左侧都是导航菜单,中间是具体的内容.比如阿里云.七牛云.头条号.百家号等 ...

  6. sql 多表多行模糊查询_从零开始学习SQL(五)多表查询

    经过之前的学习,现在我们已经对查询有了一定的了解,但是我们目前的所有查询都只能找到在一张表中的数据,但如果我们需要寻找分布在多张表格中的数据时,这种之前的查询就做不到了,这时就需要引入一种新的查询方法 ...

  7. vue中集合取第一个_快速学习Vue框架(知识点集合)

    学习Vue的小伙伴速度看过来,快速学习Vue框架知识点集合贴来啦.建议收藏,尤其基础并不是很扎实的同学,本篇集合贴就是你日后工作的参考手册. 基础知识: ·vue的生命周期:beforeCreate/ ...

  8. vue族谱架构_从零开始做Vue前端架构(1)

    前言 想想也已经做过不少架构的项目了,有基于vue,基于react,基于thinkPHP,基于laravel的. 做多了,也就对现有的架构有各种想法,有好的,有坏的,总之,用起来还是不爽.vue-cl ...

  9. vue created 调用方法_深入解析 Vue 的热更新原理,偷学尤大的秘籍?

    大家都用过 Vue-CLI 创建 vue 应用,在开发的时候我们修改了 vue 文件,保存了文件,浏览器上就自动更新出我们写的组件内容,非常的顺滑流畅,大大提高了开发效率.想知道这背后是怎么实现的吗, ...

最新文章

  1. 太火了!MyBatis Plus 为啥这么牛?
  2. Qt for Python之 PySide2+QML 入门示例
  3. ITK:提取矢量图像的分量/通道
  4. 2020-2021家居行业年度盘点与趋势洞察
  5. JavaScript单线程和浏览器事件循环简述
  6. 浏览器设置主页 注册表_关于浏览器首页被篡改这件事
  7. 简谈【自动化协议逆向工程技术的当前趋势】
  8. 微信公众号H5之微信分享常见错误和问题(the permission value is offline verifying)
  9. 如何让excel表格排头一直都在_如何快速整理Excel表格?学会这一招整理表格无压力...
  10. 四轴mpu6050姿态角卡尔曼滤波代码分析
  11. Mothur5进阶_Mothur扩增子基因序列分析_基于OTU或ASV的多样性指数分析
  12. 复音合成器插件-Arturia Pigments 3.0.0 WiN-MAC
  13. Deli条码打印机如何批量打印二维码
  14. 24点游戏java代码 中国开源社区_编程实现一个有GUI的24点游戏
  15. PHP登入网站抓取并且抓取数据
  16. Linux awk 命令详解
  17. ffmpeg h264解码器分析sps(二)
  18. 用OpenGL画五角星
  19. 2022年熔化焊接与热切割培训试题模拟考试平台操作
  20. 我说怎么flickr上不去了呢?

热门文章

  1. Anychat的绝对路径与相对路径
  2. php7.3安装yaf扩展
  3. 一个关于php使用pdo方式进行数据库连接和处理的类
  4. Mysql升序排序对为空的排在最后面is null
  5. Go创建赋值channel
  6. oracle10g自带的公共同义词,10g ALL_SYNONYMS同义词查询性能下降
  7. android7.0wine乱码,Wine1.7+QQ6.4+处理中文乱码
  8. 5渲染判断if_React 16 渲染流程
  9. php教学小结,php小结
  10. 华为8lite支持云闪付吗_鸿蒙系统适配机型表曝光,部分华为旗舰机未支持,你是其中之一吗...