Vue基础知识总结(二)

一、解决网速慢的时候用户看到花括号标记

  (1)v-cloak,防止闪烁,通常用于比较大的选择器上。

  给元素添加属性v-cloak,然后style里面:[v-cloak]{display:none;}

  (2){{msg}},等价于<span v-text="msg"></span>

  (3){{{msg}}},html转意输出,等价于<span v-html="msg"></span>(在v2.0上,三括号已经删除)

二、计算属性的使用:

  (1)注意:计算属性computed的写法方式是跟methods是一样的,但是computed是属性,可以直接拿来当属性使用,而methods是方法

  (2)计算属性的值取决于函数的返回值,这样函数里面就可以写相应的业务逻辑

  (3)2种方式:

//1、默认get方式
new Vue({
    el:‘#box‘,
    data:{
        a:1
    },
    computed:{
        b:function(){
            //业务代码逻辑
            return this.a + 1; //计算属性b的值取决于return的值
        }
    }
});
//2、完整写法:有get和set
computed:{
    b:{
        get:function(){
            return this.a + 1;
        },
        set:function(val){//val即为给计算属性b赋的值
            this.a=val;
        }
    }
}

三、vue实例自带的简单方法

  vm.$el 就是指定的el元素
  vm.$data 就是data对象
  vm.$mount(el)手动挂载元素
  vm.$options 获取自定义属性或方法(vm.$options.aa,vm.$options.show())
  vm.$destroy 销毁对象
  vm.$log() 查看现在数据的状态

四、循环

  (1)循环有重复的数据怎么办?加track-by="索引或uuid",还会提高循环的性能

<li v-for="value in arr" track-by="$index">{{value}}</li>

五、过滤器

  1、跟json串使用:json,类似于JSON.stringify,如果属性是json对象的时候,用于将json对象序列化显示

  2、跟事件配合使用:debounce 2000,延迟执行

  3、跟数组配合适用的过滤器:

    limitBy 2 1,限制取几个数据,有两个参数:limitBy 取几个 从哪开始(索引)

    filterBy ‘a‘,按字符过滤包含给定字符的数据

    orderBy 1(正序,-1倒序),排序用

  4、自定义过滤器:常规的model—过滤—view

  语法:Vue.filter(name,function(arguments){})

<div id="box">{{a | toDou 1 2}}</div>

Vue.filter(‘toDou‘,function(input,a,b){
    alert(a+‘,‘+b);//input即传a值,a/b依次为1、2
    return input<10?‘0‘+input:‘‘+input;
});

  5、双向过滤器:完整的写法,默认的写法就是一般默认是read

      //<h2>welcome</h2>
        Vue.filter(‘filterHtml‘,{
            read:function(input){ //model-view
                alert(1);
                return input.replace(/<[^<]+>/g,‘‘);
            },
            write:function(val){ //view -> model
                console.log(val);
                return val;
            }
        });

六、自定义属性指令

  Vue.directive(指令名称,function(接收参数){ this.el — 原生的dom对象})

  <div v-red="参数"></div>,传参数

  指令名称:v-red,那么对应的是red;指令必须以 v- 开头,否则不生效

//拖拽指令自定义
Vue.directive(‘drag‘,function(){
    var oDiv=this.el;
    oDiv.onmousedown=function(ev){
        var disX=ev.clientX-oDiv.offsetLeft;
        var disY=ev.clientY-oDiv.offsetTop;

        document.onmousemove=function(ev){
            var l=ev.clientX-disX;
            var t=ev.clientY-disY;
            oDiv.style.left=l+‘px‘;
            oDiv.style.top=t+‘px‘;
        };
        document.onmouseup=function(){
            document.onmousemove=null;
            document.onmouseup=null;
        };
    };
});
//带参数指令
Vue.directive(‘red‘,function(color){
    this.el.style.background=color;//color接收参数red
});

<span v-red="‘red‘">{{msg}}</span>

  自定义元素指令:语法不一样

//自定义元素指令,用处不大
Vue.elementDirective(‘zns-red‘,{
    bind:function(){
        this.el.style.background=‘red‘;
    }
});

<div id="box">
    <zns-red></zns-red>
</div>

七、自定义键盘信息

  Vue.directive("on").keyCodes.ctrl=17

  那么就可以这么使用了:@keydown.ctrl="show",按ctrl键触发

八、监听数据变化

  vm.$watch(name,function(){}),浅度监视,适用于name为基础类型

  vm.$watch(name,function(){},{deep:true}),深度监视,适用于name为基础类型和引用类型

原文地址:https://www.cnblogs.com/goloving/p/8619961.html

时间: 2024-10-08 18:22:44

Vue基础知识总结(二)的相关文章

web基础知识(二)关于ajax,Jquery传值最基础东西

这次还是一些关于jQuery,ajax前后台传值情况, 是自己在做点小东西过程中遇到的,记录下来为自己也方便别人 列表很多,点击编辑和删除无刷新的进行操作的话,肯定是ajax了,因为无刷新嘛,可能有的朋友会说直接传值,传ID到Action删除不就OK了,用得着写js么,纯粹自己找麻烦嘛. 其实这里重点是无刷新的啦, 这个上传后到这里来,有个预览功能,把本次的全部预览,如果全部刷新的话,那么刚才上传的就不会在这个页面了,so,还是采用无刷新的比较好. 点击编辑跳到一个新的页面的时候有两种方法可以选

java基础知识(二)

1.关于static关键字总结: 1.不能在static修饰的方法中引用this变量,只能引用一些静态变量或方法,或new新的对象(可以定义局部变量). 简言之,静态方法或块中,只能引用静态的方法或变量. 2.类中的成员变量(static修饰)有缺省值,而类的定义的方法中的局部变量没有缺省值. 3.在类的构造器中,可以引用任何的静态或非静态的变量和方法,可以在非static方法中调用static方法. 4.static{}块中的代码在类装载中仅执行一次. 5.在7-7,A staticmetho

vue基础知识之vue-resource/axios

Vue基础知识之vue-resource和axios(三) vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery.vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应.也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且vue-resource的API更为简洁.另外,vue-resource还提供了

每日刷题191130 --基础知识篇 二叉搜索树

休息了两天,状态恢复了一下,补充点基础知识. 二叉搜索树 搜索树数据结构支持许多动态集合操作,包括Search,minimum,maximum,predecessor(前驱),successor(后继),INSERT和DELETE等.因此我们使用一颗搜索树既可以作为一个字典又可以作为一个优先队列.且二叉搜索树上的基本操作所花费的时间与这棵树的高度成正比.二叉搜索树有两个很重要的变体,红黑树与B树,这个我们之后有机会再补一篇文章. 顾名思义,一棵二叉搜索树是以一棵二叉树来组织的.如图所示,这样的一

Python基础知识初识 (二)

Python基础知识初识 (二) 编码初识 1.ASCLL 计算机: 计算机存储文件,存储数据,以及将一些数据信息通过网络发送出去,存储发送数据什么内容?底层都是01010101 计算机创建初期,美国,是7位一段,但是发明者说为了拓展,留出一位,这样就是8位一段句.8位有多少种可能 ?256种 编码相当于密码本,最早的密码本: ASCII码:只包含:英文字母,数字,特殊字符. 0000 0001 : a 0000 0101 : b 8bit (位)== 1byte(字节) 'hello123':

HTTP基础知识(二)

接着上一章的内容:HTTP基础知识(一) 二.简单的HTTP协议 1.客户端:请求访问文本或图像等资源的一端称为客户端: 服务器端:提供资源响应的一端 2.以百度为例子 这是请求头: 在起始行开头的HTTP/1.1表示服务器对应的HTTP版本,GET表示请求的方法,第二行开始的就是内容实体. 请求报文详解 Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset 浏览器可以接受的字符编码集. A

XML的相关基础知识分享(二)

前面我们讲了一下XML相关的基础知识(一),下面我们在加深一下,看一下XML高级方面. 一.命名空间 1.命名冲突 XML命名空间提供避免元素冲突的方法. 命名冲突:在XML中,元素名称是由开发者定义的,当两个不同的文档使用相同的原俗名时,就会发生命名冲突.例如:下面这个XML文档携带者某个表格中的信息: 1 <table> 2 <tr> 3 <td>Apples</td> 4 <td>Bananas</td> 5 </tr&g

Git基础知识(二)

前言 本篇是Git基础知识(一)的延续,由于篇幅原因,分成两篇. 我们重新建立一个文件夹,执行git init. 添加一个有三行aaaaa内容的git.txt文件,并commit. 分支 截止目前,我们都是在一个叫做master的分支上工作.Git允许我们创建分支去做一些其他的事儿,而不影响到你的master分支. 1. branch branch命令可以查看分支.创建分支以及删除分支. a. 查看分支 git branch 可以看到我们当前只有一个分支master,也叫主分支,*号代表当前所在

线程基础知识系列(二)线程的管理

本篇是线程基础知识系列的第二篇,主要简单江夏线程管理相关知识点. 线程基础知识系列(一)线程的创建和启动:说明了线程的2种创建和启动,join(),daemon线程,Callable 任务. 本文的主要内容 线程的状态 线程的优先级 sleep vs wait 线程的流程控制 Interrupt yield让出你的CPU 1.线程的状态 以<线程基础知识系列(一)线程的创建和启动>这张图,是程序的运行时线程信息截图.有main线程,user Threads,daemon Threads.现在咱

python基础知识(二)

以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍