ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vue中数据请求与计算属性

2021-05-03 10:58:57  阅读:232  来源: 互联网

标签:Vue console 请求 res json log data fetch 属性


一、数据请求
      (1)fetch
      为什么使用?
      XMLHttpRequest 是一个设计粗糙的 API,配置和调用方式非常混乱,
      而且基于事件的异步模型写起来不友好。
      兼容性不好,这是W3C的标准,将来如果实现兼容,一定大火

//get
  fetch("**").then(res=>res.json()).then(res=>{console.log(res)})
  fetch("**").then(res=>res.text()).then(res=>{console.log(res)})
  //post
  fetch("**",{
  method:'post',
  headers: {
  "Content‐Type": "application/x‐www‐form‐urlencoded"
  },
  body: "name=kerwin&age=100"
  }).then(res=>res.json()).then(res=>{console.log(res)});
  fetch("/users",{

  method:'post',
  // credentials: 'include',
  headers: {
  "Content‐Type": "application/json"
  },
  body: JSON.stringify({
  name:"kerwin",
  age:100
  })
  }).then(res=>res.json()).then(res=>{console.log(res)});

并且避免了回调地狱。

  注意:
        Fetch 请求默认是不带 cookie 的,需要设置 fetch(url, {credentials:
'include'})

        (1)axios

        注意:axios外层会进行封装一个data。

 <script>
        //axios请求,属于第三方的库
        new Vue({
            el:"#box",
            data:{
                datalist:[]
            },
            methods:{
                bth(){
                    //axios自动包装一个data属性 res.data这是最外层
                    //使用箭头函数
                    axios.get("./json/test.json").then(res=>{
                        this.datalist = res.data.data.films;
                    },err=>{
                        console.log(err);
                    })
                }
            }
        })
    </script>

二、计算属性
复杂逻辑,模板难以维护
  (1) 基础例子
  (2) 计算缓存 VS methods
    -计算属性是基于它们的依赖进行缓存的。
    -计算属性只有在它的相关依赖发生改变时才会重新求值
  (3) 计算属性 VS watch
     - v-model

下面是计算属性实现模糊查找

 <div id="box">
        <input type="text" v-model="mytext"/>
        <!-- <input type="text" @input="handleInput" /> -->

        <ul>
            <li v-for="data in getMyDatalist">
                {{data}}
            </li>
        </ul>
    </div>

    <script type="text/javascript">
        //["aaa","bbb","ccc","ddd","add","cee","eee"]        
       var vm = new Vue({
           el:"#box",
           data:{
               mytext:'',
               datalist:["aaa","bbb","ccc","ddd","add","cee","eee"]
           },
           computed: {
            getMyDatalist(){
                return this.datalist.filter(item=>item.indexOf(this.mytext)>-1)
            }
           },
       })

       var arr = [1,2,3,4,5]
    
       var newlist =arr.filter(item=>item>=3)
       console.log(newlist)
    </script>

 

 

 

标签:Vue,console,请求,res,json,log,data,fetch,属性
来源: https://blog.csdn.net/qq_51201589/article/details/116373782

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有