精华内容
下载资源
问答
  • 姓名:{{item.name}}昵称:{{item.nick}}$(document).ready(function () {$.getJSON("data.json", function (result, status) {var v = new Vue({el: '#main',data: {rows: result}})});});test.json[{"name": "王小婷...

    姓名:{{item.name}}

    昵称:{{item.nick}}

    $(document).ready(function () {

    $.getJSON("data.json", function (result, status) {

    var v = new Vue({

    el: '#main',

    data: {

    rows: result

    }

    })

    });

    });

    test.json

    [

    {

    "name": "王小婷",

    "nick": "祈澈菇凉"

    }, {

    "name": "安安",

    "nick": "坏兔子"

    }, {

    "name": "编程微刊",

    "nick": "简书"

    }

    ]

    原文作者:祈澈姑娘 技术博客:https://www.jianshu.com/u/05f416aefbe1

    90后前端妹子,爱编程,爱运营,文艺与代码齐飞,魅力与智慧共存的程序媛一枚。

    坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,对于博客上面有不会的问题,欢迎加入编程微刊qq群:260352626

    展开全文
  • 想法第一想法是要么隐藏,要么处理json删除这条数据。我用delete,但是发现原json长度不变只是变空了,而且在v-for渲染时候报错了{{item.lesson_name}}var app = new Vue({el:"#myapp",data:function(){return...

    json后端给我的数据,现在要将 标准陪练-5节 这条数据不展示。我的想法第一想法是要么隐藏,要么处理json删除这条数据。我用delete,但是发现原json长度不变只是变空了,而且在v-for渲染的时候报错了

    {{item.lesson_name}}

    var app = new Vue({

    el:"#myapp",

    data:function(){

    return{

    json:[

    {"type_name":"正课","lesson_name":"标准陪练课(中级)-90节","course_name":"标准陪练","lesson_no":"BZ-c2-3","lesson_num":90,"lesson_id":37,"xufei_buy_num":1,"level_name":"中级","money":11380,"shengyu_lesson_num":100,"free_lesson_num":12,"mode_name":"陪练","tuifei_num":0,"modify_date":"2017-10-16 13:32:41","lesson_min":50,"shouci_buy_num":1},

    {"type_name":"正课","lesson_name":"标准陪练课(中级)-120节","course_name":"标准陪练","lesson_no":"BZ-c2-4","lesson_num":120,"lesson_id":38,"xufei_buy_num":0,"level_name":"中级","money":14180,"shengyu_lesson_num":0,"free_lesson_num":0,"mode_name":"陪练","tuifei_num":0,"modify_date":"2017-10-16 13:33:38","lesson_min":50,"shouci_buy_num":0},

    {"type_name":"正课","lesson_name":"标准陪练课(中级)-200节","course_name":"标准陪练","lesson_no":"BZ-c2-5","lesson_num":200,"lesson_id":39,"xufei_buy_num":0,"level_name":"中级","money":22880,"shengyu_lesson_num":217,"free_lesson_num":17,"mode_name":"陪练","tuifei_num":0,"modify_date":"2017-10-16 13:35:01","lesson_min":50,"shouci_buy_num":1},

    {"type_name":"正课","lesson_name":"标准陪练课(高级)-30节","course_name":"标准陪练","lesson_no":"BZ-c3-1","lesson_num":30,"lesson_id":40,"xufei_buy_num":1,"level_name":"高级","money":4680,"shengyu_lesson_num":35,"free_lesson_num":10,"mode_name":"陪练","tuifei_num":0,"modify_date":"2017-10-16 13:36:20","lesson_min":50,"shouci_buy_num":0},

    {"type_name":"正课","lesson_name":"标准陪练课(高级)-60节","course_name":"标准陪练","lesson_no":"BZ-c3-2","lesson_num":60,"lesson_id":41,"xufei_buy_num":1,"level_name":"高级","money":9180,"shengyu_lesson_num":58,"free_lesson_num":2,"mode_name":"陪练","tuifei_num":0,"modify_date":"2017-10-16 13:37:36","lesson_min":50,"shouci_buy_num":0},

    {"type_name":"正课","lesson_name":"标准陪练课(高级)-90节","course_name":"标准陪练","lesson_no":"BZ-c3-3","lesson_num":90,"lesson_id":42,"xufei_buy_num":0,"level_name":"高级","money":13480,"shengyu_lesson_num":91,"free_lesson_num":3,"mode_name":"陪练","tuifei_num":0,"modify_date":"2017-10-16 13:38:41","lesson_min":50,"shouci_buy_num":1},

    {"type_name":"正课","lesson_name":"标准陪练课(高级)-120节","course_name":"标准陪练","lesson_no":"BZ-c3-4","lesson_num":120,"lesson_id":43,"xufei_buy_num":0,"level_name":"高级","money":17080,"shengyu_lesson_num":0,"free_lesson_num":0,"mode_name":"陪练","tuifei_num":0,"modify_date":"2017-10-16 13:39:45","lesson_min":50,"shouci_buy_num":0},

    {"type_name":"正课","lesson_name":"标准陪练课(高级)-200节","course_name":"标准陪练","lesson_no":"BZ-c3-5","lesson_num":200,"lesson_id":44,"xufei_buy_num":0,"level_name":"高级","money":27680,"shengyu_lesson_num":0,"free_lesson_num":0,"mode_name":"陪练","tuifei_num":0,"modify_date":"2017-10-16 13:40:58","lesson_min":50,"shouci_buy_num":0},

    {"type_name":"正课","lesson_name":"标准陪练-20节","course_name":"标准陪练","lesson_no":"BZ-c0-02","lesson_num":20,"lesson_id":64,"xufei_buy_num":0,"level_name":"全级别","money":2000,"shengyu_lesson_num":0,"free_lesson_num":0,"mode_name":"陪练","tuifei_num":0,"modify_date":"2017-11-24 15:15:22","lesson_min":50,"shouci_buy_num":0},

    {"type_name":"正课","lesson_name":"标准陪练-5节","course_name":"标准陪练","lesson_no":"BZ-c0-01","lesson_num":20,"lesson_id":63,"xufei_buy_num":0,"level_name":"全级别","money":2000,"shengyu_lesson_num":14,"free_lesson_num":0,"mode_name":"陪练","tuifei_num":0,"modify_date":"2017-11-24 15:14:44","lesson_min":25,"shouci_buy_num":1}

    ]

    }

    },

    created:function(){

    //解开就报错

    // for (let i = 0; i < this.json.length; i++) {

    // console.log(i)

    // for(let k in this.json[i]){

    // if (this.json[i][k] == "标准陪练-5节") {

    // delete this.json[i];

    // break;

    // }

    // }

    // }

    }

    })

    展开全文
  • 详解通过JSON数据使用VUE.JS发布于 2020-2-19|复制链接本篇文章主要介绍了详解通过JSON数据使用VUE.JS,具有一定参考价值,感兴趣小伙伴们可以参考一下最近接到一个比较简单项目,不准备使用数据库,打算用...

    详解通过JSON数据使用VUE.JS

    发布于 2020-2-19|

    复制链接

    本篇文章主要介绍了详解通过JSON数据使用VUE.JS,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    最近接到一个比较简单的项目,不准备使用数据库,打算用JSON数据就可以了。结合当前火热的VUE.JS进行数据渲染。尽管不打算使用数据库,可是一般的操作增删查改依旧是少不了的。如果使用到数据库的话,不妨做一个API出来,那么网站、APP等都可以依照这个进行操作。在这篇文章里面,我们只是打算简单的引用而已。下面先来看看我的JSON文件,这里是一个类别文档Category.json:

    ```javascript

    {

    "msg": "ok",

    "data":[

    {

    "ID":"1",

    "name": "地产",

    "Url":"/Category/List/1"

    },

    { "ID":"2",

    "name": "科技",

    "Url":"/Category/List/2"},

    { "ID":"3",

    "name": "医药",

    "Url":"/Category/List/3"},

    { "ID":"4",

    "name": "其他",

    "Url":"/Category/List/4"}

    ]

    }

    ```

    下面我们通过Javascript进行渲染,将数据渲染到导航里面去。这里有两种方式:如果你的项目已经带有JQuery的话,可以参考一下使用下面的代码:

    ```javascript

    $(function(){

    $.ajax({

    type:'get',

    url:'Category.json',

    success: function(data){

    if(data.msg == "ok"){

    pushDom(data.data);

    }

    else

    {

    alert("服务器返回异常");

    } },

    error: function(data){

    alert(JSON.stringify(data));

    }

    });

    function pushDom(data1){

    var vm = new Vue({ el: '#app', data: { peps:data1 } });

    }

    })

    ```

    然后到html中,把数据渲染出来

    ```xhtml

    {{pep.name}}

    ```

    上面的代码是使用JQuery的$.ajax 将json的数据引入,但如果你的项目里面没有使用到JQuery的话,就要使用到vue-resource.js了。在html中引入:

    ```xhtml

    ```

    我第一次使用vue-resource.js的时候,和vue.js版本不匹配居然屡屡出错,这是新手必须要注意的。这是一个坑啊,如果你们运行下面的代码不能渲染的话,99%是遇到这个坑了。

    ```javascript

    var app = new Vue({

    el: '#app',

    data: {

    peps: ''

    },

    mounted: function() {

    this.getJsonInfo()

    },

    methods: {

    getJsonInfo: function() {

    this.$http.get('Category.json').then(function(response){

    console.log(response.data.data)

    var resdata = response.data.data

    this.peps = resdata

    }).catch(function(response){

    console.log(response)

    console.log("居然没有弹窗")

    })

    }

    }

    })

    ```

    html处不用做其它修改。

    展开全文
  • 实现过程实现数据的双向绑定,首先要对数据进行劫持监听,所以我们需要设置一个监听器Observer,用来监听所有属性。如果属性发上变化了,就需要告诉订阅者Watcher看是否需要更新。因为订阅者是有很多个,所以我们...

    实现过程

    实现数据的双向绑定,首先要对数据进行劫持监听,所以我们需要设置一个监听器Observer,用来监听所有属性。如果属性发上变化了,就需要告诉订阅者Watcher看是否需要更新。

    因为订阅者是有很多个,所以我们需要有一个消息订阅器Dep来专门收集这些订阅者,然后在监听器Observer和订阅者Watcher之间进行统一管理的。接着,我们还需要有一个指令解析器Compile,对每个节点元素进行扫描和解析,将相关指令对应初始化成一个订阅者Watcher,并替换模板数据或者绑定相应的函数,此时当订阅者Watcher接收到相应属性的变化,就会执行对应的更新函数,从而更新视图。

    因此接下去我们执行以下3个步骤,实现数据的双向绑定:

    1.实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅者。

    2.实现一个订阅者Suber,可以收到属性的变化通知并执行相应的函数,从而更新视图。

    3.实现一个解析器Compile,可以扫描和解析每个节点的相关指令,并根据初始化模板数据以及初始化相应的订阅器。

    1. Observer

    Observer是一个数据监听器,其实现核心方法就是Object.defineProperty( )。如果要对所有属性都进行监听的话,那么可以通过递归方法遍历所有属性值,并对其进行Object.defineProperty( )处理。如下代码,实现了一个Observer。

    918edffd7366e9a4914f38e3f79e6b47.png

    2. Suber

    订阅者Suber执行对应的get函数进行初始化, 在初始化的时候需要将自己添加进订阅者队列 SubQueue中, 当原来的值发生变化时执行相应的update函数

    811cacbc391ce7a2d6441e5259863c17.png

    3. SubQueue

    收集所有订阅者发生变化时通知订阅者

    93d53289e74f49f9ed8e49c5aa40d4b9.png

    4. Compile

    解析模板指令,并替换模板数据,初始化视图。将模板指令对应的节点绑定对应的更新函数,初始化相应的订阅器

    29d85e35dc5e019c5f21220be53f31fb.png

    f35e75cf648f074ca9c6fd30ea5f5276.png

    1f274dd9a4184522c328a3b3fbd44789.png

    ea5b2758992c26304ba335eb8569ef29.png

    c1543d98a07655d0d03e8f9ca3fd745c.png

    5. Vue实例

    f151a34e1eee4af0ec0312bfcfe96244.png

    测试页面

    ddae01959689a48ce15c4f90fb7cebfe.png

    9d6fb6981624e04d088226de71b67712.png

    最后,如果觉得好的话,不要忘记点个收藏或者赞同哦~还可以添加我的vx:jgxiaokeai~加入前端技术交流群与千位大咖一起交流学习哦~

    展开全文
  • 后台传给前台的json数据格式,这里原本只是传list数据给后台,因为需要分页,所以用pageInfo包了一下,成了json格式:{"data": {"endRow": 1,"firstPage": 1,"hasNextPage": false,"hasPreviousPage": false,...
  • 本章目标彻底搞清楚vue的数据劫持(包括2.x和最新3.0)如果说你技术栈是vue,那么面试中肯定有一个问题绕不过,那就是vue的数据劫持原理。一般情况下,面试官会这样问:vue的数据劫持是怎么实现说一...
  • 1、view视图层实现一个指令解析器Compile,对每个元素节点指令进行扫描和解析,根据指令模板替换数据,以及绑定相应更新函数2、mode数据层实现一个数据监听器Observer,能够对数据对象所有属性进行监听,如有...
  • 前两天干活儿时候碰到一个Vue的问题,让我这个菜鸡完全摸不到头脑,需求如下:前端页面点击表格中某一行详情按钮,会弹出一个Dialog,然后Dialog中有选项卡,选项卡中再有具体table来展示详细信息,根据id...
  • 原理:监听拦截住ajax请求,返回mock处理的数据。 使用示例: 目录结构: 首先在index.html中引入jquery和mcok <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> &...
  • vue中利用jsonp进行跨域请求获取数据

    千次阅读 2019-02-28 09:48:11
    2. jsonp原理:不是发生ajax请求,是动态处理script标签 ,script标签是可以跨域。用js构造一个script标签,把json的url赋给scriptscr属性,把这个script插入到dom里,让浏览器去获取。 3. 下载:npm in...
  • 大家都知道用angular或者vue来进行数据的循环并操作数据很简单,最近试了试用jquery来进行数据的操纵,了解一下底层的原理。  工作中用到后台提供的接口并处理得到的json数据,然后展现到页面上,这时候用户可以...
  • vue的原理有了解,项目开发中遇到的所有问题我都有信心能解决掉</li><li>调研了我们团队的成员,大部分都使用过vue,对vue多少都有过开发经验,并且之前团队内也用vue开发过一些项目</li>...
  • jsonp实现原理 : 主要是利用动态创建script标签请求后端接口地址,然后传递callback参数,后端接收callback,后端经过数据处理,返回callback函数调用形式,callback中参数就是json。 代理 前端代理我在vue中...
  • 跨域解决方案

    2019-08-04 20:20:49
    jsop实现原理:主要是利用动态创建script标签请求后端接口地址,然后传递callback参数,后端接收callback,后端经过数据处理,返回callback函数调用形式,callback中参数就是json 2. 代理(前端代理和后端代理)...
  • jsonp 实现原理:主要是利用动态创建 script 标签请求后端接口地址,然后传递 callback 参数,后端接收 callback,后端经过数据处理,返回 callback 函数调用形式,callback 中参数就是 json 优点:浏览器兼容性...
  • 跨域及其解决方式

    2019-08-15 20:10:18
    一、什么情况下会产生跨域...实现原理:利用动态创建script标签请求后端接口地址,然后传递callback参数,后端接收到后经过数据处理,返回callback中参数就是json 2.代理 前端代理在vue中主要是通过vue脚手架中c...
  • 最近看到之前做过一个计时器案例,感觉数据处理上和vue很相似,所以回顾一下制作过程。 界面很简单,原理是用canvas绘制出一个圆,圆下两个按钮控制计时开始和停止,在圆中有一个data记录时间变化。效果如下: ...
  • 关于 scope 的存储的原理后面会详细阐述。Bit 受到了 Git 的机制很大的启发,如果读者对 Git 熟悉的话,就会更容易理解 Bit。 <h4>Remote Scope(远程仓库) <p>Remote scope 是保存在...
  • 日志:每个软件工程师都应该知道的有关实时数据的统一抽象.epub 时间序列数据库的秘密.epub 智酷分析精选.epub 最完整的Docker聖經 - Docker原理圖解及全環境安裝.epub 最详细的 Vi 编辑器使用指南.epub 机器学习...
  • 日志:每个软件工程师都应该知道的有关实时数据的统一抽象.epub 时间序列数据库的秘密.epub 智酷分析精选.epub 最完整的Docker聖經 - Docker原理圖解及全環境安裝.epub 最详细的 Vi 编辑器使用指南.epub 机器学习...
  • 大型集群上快速和通用数据处理架构 数据挖掘中经典算法实现和详细注释 Spark 编程指南简体中文版 返回目录 编程艺术 程序员编程艺术 每个程序员都应该了解内存知识(译)【第一部分】 取悦工序:如何...
  • |____04-ORM思想及相关框架实现原理 |____03-MVC |____02-数据库优化 |____01-JVM优化 |____23 微服务社交平台【十次方】· |____17 项目完结 |____16 dockfile |____15 SpringCloud之一统天下 |____14 ...
  • 实现原理: 当收到支付宝、微信、实时收款信息,客户端会实时通知服务器收款金额和方式,服务器收到有效期订单金额后处理订单状态,使用随机减免方式区分订单(5分钟订单有效期内有相同金额订单会随机减免0.01 -...
  • front-end-Doc 前端文档汇总(含代码规范、开发流程、知识分享,...Angular数据绑定原理 https://github.com/Pasvaz/bindonce 一些扩展Angular UI组件 https://github.com/angular-ui Ember和AngularJS性能测试 ...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

vue处理json数据的原理

vue 订阅