VUE.JS-程序员宅基地

技术标签: ViewUI  javascript  xhtml  

 

1.双大括号表达式(用双括号获取值)

 

指令:

1:强制数据绑定 

<img v-bind:src="imageURL" > 也等于 <img :src="imageURL" >

2.绑定事件监听

  <button v-on:click="test">绑定事件监听</button>等价于<button @click="test">绑定事件监听</button>

 传递参数的方式直接在监听的函数后面括号里加入参数

 

 

Vue计算属性

在使用计算属性的时候,有表单一定要有v-model

 数据每发生一次变化,fullName()就执行一次

 

 

 

 

 

用监视也能实现计算,但是没有计算属性简单,但是它也有很多用处

 

 

 

vue监视(watch)

 

 

 

 Vue计算属性之set  get(数据双向绑定

数据双向绑定就是当数据发生变化的时候,试图也发生变化,视图发生变化,数据也相应发生变化,其核心时set get方法

 

计算属性高级

计算属性存在缓存,多次读取只执行一次getter计算

按照常理

<p>{
    {fullName2}}</p>
<p>{ {fullName2}}</p>
<p>{ {fullName2}}</p>


应该调用三次fullName2函数,但是实际上只调用了一次,因为第一次调用时就把数据缓存了,以后调用的时候不用去调用函数,而是在缓存里面直接读取,所以实际上只调用了一次,



vue强制绑定class,style
绑定的是字符串

 

绑定的是对象


条件渲染(v-if , v-else)

 

 


v-show也可以实现

 

 v-if v-else 和 v-show 的区别是 v-if v-else是将元素移除,而v-show是将元素隐藏

 

 

列表渲染

Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新。这些方法如下:

  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort()
  • reverse()
v-for遍历数组(和forEach很像)
删除元素

 

更新

 

v-for遍历对象

 

 

可以是多个参数:

<ul>
  <li v-for="(value , name , index) in student[0]">
    { {index}}.{ {name}}:{ {value}}
  </li>
</ul>

 

列表的搜索和排序

 

显示过滤/排序结果

 在 项目中经常对数据进行排序和筛选,利用计算属性来做

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 8 <body>
 9 <div id="app">
10     <input type="text" v-model="searchName">
11     <ul>
12         <li v-for="(stu,index) in filterStudent" :key="index">
13             {
      {index}}--{
      {stu.name}}--{
      {stu.age}}
14         </li>
15     </ul>
16     <button @click="setOrderType(1)">年龄升序</button>
17     <button @click="setOrderType(2)">年龄降序</button>
18     <button @click="setOrderType(0)">原本排序</button>
19 </div>
20 <script>
21     new Vue({
22         el:'#app',
23         data:{
24             searchName:'', //当表单输入值的时候,这个值也相应的改变
25             orderType:0, //0代表原本顺序  1升序 2降序
26             student:[
27                 {name:'刘牌0' , age:20},
28                 {name:'雷军0' , age:34},
29                 {name:'马化腾1' , age:40},
30                 {name:'乔布斯0' , age:100}
31             ]
32         },
33         //使用计算属性来过滤
34         computed: {
35             filterStudent(){
36                 //取出相关数据
37                 const {searchName , student , orderType} = this
38                 //定义一个最终返回的数组
39                 let filterStu;
40                 //过滤
41                 filterStu = student.filter(stu => stu.name.indexOf(searchName)!==-1)
42                 //排序
43                 if(orderType!==0){
44                     filterStu.sort(function (s1,s2) { //制定规则 ,如果返回负数则s1在前 , 返回整数则s2在前
45                         if(orderType===2){
46                             return s2.age-s1.age
47                         }
48                         else{
49                             return s1.age-s2.age
50                         }
51                     })
52                 }
53                 return filterStu
54             }
55         },
56         methods:{
57             setOrderType(orderType){
58                 this.orderType = orderType
59             }
60         }
61 
62     })
63 </script>
64 
65 </body>
66 </html>
View Code

 

 

事件处理

监听事件

可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<body>
<div id="app">
    <button @click="counter+=1">Add 1</button>
    <p>the button {
     {counter}}</p>
</div>

<script>
    new Vue({
        el:'#app',
        data:{
            counter:0
        }
    })
</script>
</body>
</html>
View Code

 

事件处理方法

然而许多事件处理逻辑会更为复杂,所以直接把 JavaScript 代码写在 v-on 指令中是不可行的。因此 v-on 还可以接收一个需要调用的方法名称。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<body>
<div id="app">
    <button @click="one">One</button>
</div>

<script>
    new Vue({
        el:'#app',
        data:{
           name:'刘牌'
        },
        methods:{
          one:function (event) {
              alert('你好'+this.name+'!')
              if (event){
                  alert(event.target.tagName)
              }
          }
        }
    })

</script>
</body>
</html>
View Code

 

表单数据的自动收集

复选框

多个复选框,绑定到同一个数组:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<body>
<div id='example-3'>
    <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
    <label for="jack">Jack</label>
    <input type="checkbox" id="john" value="John" v-model="checkedNames">
    <label for="john">John</label>
    <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
    <label for="mike">Mike</label>
    <br>
    <span>Checked names: {
     { checkedNames }}</span>
</div>

<script>
    new Vue({
        el: '#example-3',
        data: {
            checkedNames: []
        }
    })
</script>
</body>
</html>
View Code

单选按钮

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<body>
    <div id="example-4">
        <input type="radio" id="one" value="One" v-model="picked">
        <label for="one">One</label>
        <br>
        <input type="radio" id="two" value="Two" v-model="picked">
        <label for="two">Two</label>
        <br>
        <span>Picked: {
     { picked }}</span>
    </div>

<script>
    new Vue({
        el: '#example-4',
        data: {
            picked: ''
        }
    })
</script>
</body>
</html>
View Code

 

 

下拉选择框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<body>
<div id="example-5">
    <select v-model="selected">
        <option disabled value="">请选择</option>
        <option>A</option>
        <option>B</option>
        <option>C</option>
    </select>
    <span>Selected: {
     { selected }}</span>
</div>
<script>
    new Vue({
        el: '#example-5',
        data: {
            selected: ''
        }
    })
</script>
</body>
</html>
View Code

v-for 渲染的动态选项:

 

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<body>
<div id="app">
    <select v-model="selected">
        <option v-for="option in options" v-bind:value="option.value">
            {
      { option.text }}
        </option>
    </select>
    <span>Selected: {
     { selected }}</span>
</div>
<script>
    new Vue({
        el: '#app',
        data: {
            selected: 'A',
            options: [
                { text: 'One', value: 'A' },
                { text: 'Two', value: 'B' },
                { text: 'Three', value: 'C' }
            ]
        }
    })
</script>
</body>
</html>
View Code

 

 

 

过渡 & 动画

用到时再查,有很多很炫酷的东西

 

 

转载于:https://www.cnblogs.com/steakliu/p/10887690.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30532837/article/details/98801990

智能推荐

能够在was下部署的cxf spring maven 配置-程序员宅基地

文章浏览阅读252次。2019独角兽企业重金招聘Python工程师标准>>> ..._was cxf

【IDEA使用技巧】使用阿里统一的code style规范你的代码格式_idea 阿里巴巴code style-程序员宅基地

文章浏览阅读1.7w次。1、下载阿里eclipse-codestyle.xml:https://github.com/alibaba/p3c/tree/master/p3c-formatter2、IDEA配置,导入xml:https://www.jetbrains.com/help/idea/2016.2/configuring-code-style.html_idea 阿里巴巴code style

[01] MQTT,mosquitto,Eclipse Paho----入门_系统上mosquitto什么意思-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏15次。MQTT,mosquitto,Eclipse Paho这三个单词陌生而又神秘。那么这三个单词究竟是什么意思,代表了什么技术,他们之间有关联吗?不着急,请听笔者慢慢给大家分享。_系统上mosquitto什么意思

python读取宇视摄像头实时流,并用opencv做人脸检测_宇视 网络摄像机 登陆 python-程序员宅基地

文章浏览阅读4k次。一、测试摄像头宇视摄像头默认密码123456,取流地址:rtsp://admin:[email protected]:554下载VLC播放器进行验证,下载地址如下https://dl.pconline.com.cn/html_2/1/124/id=6661&pn=0&linkPage=1.html选择媒体-打开网络串流可以看到预览流。二、准备p..._宇视 网络摄像机 登陆 python

Linux 上下文切换分析笔记 (MIPS)_arch= 切换 mips-程序员宅基地

文章浏览阅读561次。原文网址:http://blog.openrays.org/blog.php?do=showone&tid=455这篇我也没看懂,先记录下来,留着改天再慢慢研究。1. 内核栈切换 (MIPS)调度切换至一个进程时,根据 task_struct->thread_info 的值设置 *kernelsp(当前正在运行进程之内核栈栈底),其值为 thread_info + THRE_arch= 切换 mips

虚幻4渲染编程(材质进阶篇)【第一卷:影视剧各种衣料--上】-程序员宅基地

文章浏览阅读132次。我的专栏目录: 小IVan:专题概述及目录 专题概述: 最近古墓丽影新作看的人心里直痒痒,用最新的RTX技术,让整个游戏画面又提升了一个档次。但是里面的材质衣料都是欧美的东西,所以我打算在游戏里自己实现一下中国的一些高级材质。最近正逢一部清宫剧很火,里面的服饰道具都非常华丽,所以想以它为参考在游戏里实现剧中的各类材质(侵删)。 ...

随便推点

在 JSDOM v11 中使用jQuery-程序员宅基地

文章浏览阅读95次。在JSDOM v11中使用jQuery从v10开始,jsdom提供了更灵活的API。https://swashata.me/blog/use-jquery-jsdom-v11/ const testHTML = ` <!DOCTYPE html> <html> <head> </head>..._const $ = global.jquery = require( 'jquery' );

个人征信报告,OCR识别,OCR识别技术方案_征信 ocr识别-程序员宅基地

文章浏览阅读3.2k次。一、产品背景1、业务需求个人征信报告是反应个人信用最真实、直观的材料,通过评估个人的信用情况,从而给予信用贷款是国内金融信贷机构通行的做法。目前个人征信报告都是从人民银行征信中心获取打印的,个人征信数据属于个人隐私信息,不能对金融信贷机构开放,因此,信贷机构从人民银行征信中心获取个人信用数据是比较困难的,必须通过央行的牌照申请。基于以上情况,现行个人信用贷款的业务模_征信 ocr识别

使用js根据输入的数字N来随机生成N位数的密码(由数字和字母组成)_输入一个正整数n,输出随机生成的n位密码字符串-程序员宅基地

文章浏览阅读3.7k次。法一: 思路: 1.通过一个数组来储存密码串; 2.将输入的N来做for循环的条件,决定密码的次数; 3.通过Math.random()来用作数组的下标,让它随机 4.将从数组中随机生成的字符(密码串)连接起来** var N=prompt("请_输入一个正整数n,输出随机生成的n位密码字符串

基于Perclos&改进YOLOv7的疲劳驾驶DMS检测系统(源码&教程)-程序员宅基地

文章浏览阅读5.2k次,点赞5次,收藏87次。基于Perclos&改进YOLOv7的疲劳驾驶DMS检测系统(源码&教程)_perclos

Android WebView拦截iframe标签内部跳转-程序员宅基地

文章浏览阅读4.6k次。最近项目里有个广告位需要动态配置,后台给了一段 html嵌套iframe标签的代码,需要Android拦截iframe内部的跳转,自己做处理。比如,下面是一段html代码,嵌套这iframe标签,src就是跳转地址,我现在就要当你点击该网址的时候做拦截,自己做处理而不是跳转。<html> <iframe src="https://www.imooc.com/" fr..._android webview拦截iframe标签

讲明白了-Python的多线程和多处理_python多线程资源管理-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏16次。什么是MultiProcessing?MultiProcessing允许在程序中生成多个进程。它允许在计算机上利用多个 CPU内核程序中的多个进程不共享内存全局解释器锁定限制:只允许一个线程控制 Python 解释器用于计算或 CPU 密集型程序那么什么是多线程, 什么时候使用它?线程在程序中执行的最小独立命令集应用程序中的多个线程可以在称为多线程的 CPU上同时执行始终在程序内运行,不能自己运行当程序受网络绑定或存在繁重的 I/O 操作时使用内存在进程中的多个线程之间共享,因_python多线程资源管理

推荐文章

热门文章

相关标签