美文网首页
2018-08-10

2018-08-10

作者: mylove_慧儿 | 来源:发表于2018-08-11 01:20 被阅读0次

methods:{ }

里面放的是 需要手动触发才会执行的函数

mounted(){ } 钩子函数

作用:(和window.onload作用相似)页面加载完成之后立即执行函数里面的内容
// 注意:mounted钩子函数的名字不能不能随便取,不能写在methods属性里面

自动获取焦点的三种方法
  • 第一种 给input直接添加属性autofocus='true'

编号:<input type="text" required='required' v-model='id' autofocus='true'>

  • 第二种 给input添加ref属性 调用$refs方法

编号:<input type="text" v-model='id' id='inputid' ref='inputrefid'>

mounted () {//页面一加载 就执行里面的内容
     document.getElementById('#inputid').focus()//通过id获取dom的
     this.$refs.inputrefid.focus()//通过this.$refs.xxid的值来获取dom
     },
  • 第三种 使用 ###自定义指令### 获取焦点 / 改变输入框文本颜色
    使用方法:Vue.directive(‘名字’,{对象})创建一个指令

编号:<input type="text" required='required' v-model='id' v-myfocus>

//自定义指令 获取焦点  
 Vue.directive('myfocus',{//'myfocus'自定义一个指令名字  后期直接用v-myfocus来调用这个指令
      inserted(el,binding){//inserted***钩子函数*** 表示指令插入到标签中就开始执行
        console.log(el)//参数el 表示的是这个指令的dom元素<input></input>
        el.focus()
     }
 }) 

//自定义指令 改变文本框颜色
编号:<input type="text" required='required' v-model='id' v-mycolor='color'>
1.在data里面定义一个color:'red'
2.通过给v-myfocus指令添加color属性
3.赋值给 el.style.color=binding.value

//自定义指令   
Vue.directive('mycolor',{
      inserted(el,binding){
      // console.log(binding.value)//获取的是dom元素的值
       el.style.color=binding.value
       }
}) 

Vue.filter() 创建过滤器

<--在需要过滤的数据后面加上管道符 | 过滤器名称 -->
<td>{{item.ctime | fmtTime('/')}}</td>

创建一个时间过滤器
Vue.filter('filetime',function(time,'分隔符'){
    var Y=time.getFullYear()
    var M=time.getMonth()
    var D=time.getDay()
    return Y+分隔符+M+分隔符+D
})

computed:{} -求和-筛选查找等

作用:通过computed这个关键字 来创建一个计算属性
优点:基于他们的依赖将数据进行缓存 解决了大量的逻辑问题 便于维护

<div v-for='item in newarr'> </div>

computed: {
        newarr(){//newarr就相对于一个计算属性 它是一个函数  但是可以直接当作属性来使用
// //通过监听搜索框的值 跟数组里里面的相对比 获取到一个新的数组 用到了filter()和indexOf()两个方法
        return this.arr.filter(item=>item.name.indexOf(this.searchval)!==-1)
                   }
         },

filter()实例:返回数组 ages 中所有元素都大于 18 的元素:
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}

watch:{}

作用:通过watch属性创建的是一个监听器 是一个对象
通过监听属性值的变化 执行想要的函数

watch:{
 //通过监听 搜索框值searchval的值的变化 给数组进行重新赋值
       searchval:function(newval,oldval){//函数名必须是 要监听的data的名字
       this.arr = this.arr.filter(item=>item.name.indexOf(this.searchval)!==-1)
       }
 }
  • 注意:通常情况下用computed,当需要在数据变化时执行异步或开销较大的操作时,用watch
  • // 开发时,能用computed实现的时候,就用computed实现
  • // 需要执行异步操作的时候,就要用到watch
  • 深度监听 当监听的是data里面的对象的时候 需要深度监听

data: {
user: {
name: 'jack'
}
},

        watch: {
          user: {
              handler (newval) {// hanlder这个函数名字固定
              console.log(newval.name);
            },
           deep: true  // deep:true表示深度监听
          }
        }

get请求

 mounted () {
          axios.get('http://157.122.54.189:9093/api/getprodlist')       // axios的get请求
            .then(res => {
              console.log(res);
              console.log(res.data); // axios中将数据封装到了data属性中
            })
            .catch(error => {
              console.log(error);
            })
        }

post请求

 mounted () {
          axios.post('http://157.122.54.189:9093/api/addproduct', {
            name: '哈哈哈'
          })
            .then(res => {
              console.log(res.data);
            })
            .catch(error => {
              console.log(error);
            })
        }
  • 可以 在methods:{ }里面封装成一个函数 在mounted(){ } 钩子函数里面调用

mounted () {
this.getData()
}

动画

[图片上传失败...(image-59ec92-1533921563244)]

相关文章

网友评论

      本文标题:2018-08-10

      本文链接:https://www.haomeiwen.com/subject/bvxkbftx.html