前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何将json数据通过vuex渲染到页面上

如何将json数据通过vuex渲染到页面上

作者头像
玖柒的小窝
修改于 2021-11-08 01:39:37
修改于 2021-11-08 01:39:37
2.8K00
代码可运行
举报
文章被收录于专栏:各类技术文章~各类技术文章~
运行总次数:0
代码可运行

如何将json数据通过vuex渲染到页面上

  • 在store中导入axios
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import axios from 'axios'
复制代码
  • actions中执行异步操作,来将json数据拿到store中
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
actions: {
    getList(context) {
      axios.get('./list.json').then(({ data }) => {
        context.commit('initList', data)
      })
    }
  },
复制代码
  • 通过mutation将数据送到state中去
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
state: {
    // 所有的任务列表
    list: []
  },
  mutations: {
    initList(state, list) {
      state.list = list
    }
  },
复制代码
  • 在app.vue中按需导入
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { mapState } from 'vuex'
复制代码
  • 在页面加载时通过action获取数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
created() {
    this.$store.dispatch('getList')
  },
复制代码
  • 通过计算属性的方式将state中的list内容放到app.vue中
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
computed: {
    ...mapState(['list'])
  }
复制代码
  • 完成数据替换

如何使文本框输入内容后同步

  • 给state设置一个文本的存储
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
state: {
    // 文本框中的内容
    inputValue: 'aaa'
  },
复制代码
  • 属性绑定state的inputValue + 判断当文本框内容发生改变时,触发函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a-input
      :value="inputValue"
      @change="handleInputChange"
    />
          
computed: {
    ...mapState(['list', 'inputValue'])
  },
复制代码
  • 通过函数来监听最新文本并通过mutation更新state数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
handleInputChange(e) {
      console.log(e.target.value)
      this.$store.commit('setInputValue', e.target.value)
}


mutations: {
    setInputValue(state, val) {
      state.inputValue = val
    }
  },
复制代码
  • 完成

如何完成添加按钮

  • 绑定click事件
  • 新增mutation函数用于执行操作
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
state: {
    // 下一个Id
    nextId: 5
  },
mutations: {
    addItem(state) {
      const obj = {
        id: state.nextId,
        info: state.inputValue.trim(),
        done: false
      }
      state.list.push(obj)
      state.nextId++
      state.inputValue = ''
    }
  },
复制代码
  • 调用
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
addItemToList() {
      if (this.inputValue.trim().length <= 0) {
        return this.$message.warning('文本框内容不能为空')
      }

      this.$store.commit('addItem')
    }
复制代码
  • 完成

如何删除一条数据

  • 为删除按钮添加click事件,参数为当前数据的id
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a-list-item slot="renderItem" slot-scope="item">
        <a slot="actions" @click="removeItemById(item.id)">删除</a>
</a-list-item>
复制代码
  • 在mutation中写入删除函数
    • 寻找索引:当前索引是否等于当前id
    • 删除:元素,一个
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
removeItem(state, id) {
      // 根据Id查找对应项的索引
      const i = state.list.findIndex(x => x.id === id)
      // 根据索引,删除对应的元素
      if (i !== -1) {
        state.list.splice(i, 1)
      }
    }
复制代码

复选框默认状态绑定

  • 利用属性绑定使checked为true或者为false来进行同步
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a-checkbox :checked="item.done">{{ item.info }}</a-checkbox>
复制代码

复选框选中与取消

  • 为复选框绑定change事件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a-checkbox
          :checked="item.done"
          @change="(e) => {cdstatusChanged(e, item.id)}"
          >{{ item.info }}</a-checkbox>
复制代码
  • 在函数中拿到id和当前复选框的选中状态
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cdstatusChanged(e, id) {
      // 通过e.target.checked可以接受到最新的选中状态
      // console.log(e.target.checked)
      // console.log(id)
      const param = {
        id: id,
        status: e.target.checked
      }

      this.$store.commit('changeStatus', param)
    }
复制代码
  • 在mutation函数中将state的选中状态改变
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 修改列表项的选中状态
    changeStatus(state, param) {
      const i = state.list.findIndex(x => x.id === param.id)
      if (i !== -1) {
        state.list[i].done = param.status
      }
    }
复制代码

清除已完成任务

  • 绑定单击事件并初始化函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a @click="clean">清除已完成</a>
// 清除已完成的任务
    clean() {
      this.$store.commit('cleanDone')
    }
复制代码
  • mutation中写入删除逻辑
    • filter可以将结果返回为一个新数组
    • 将所有done=false的结果变为一个数组并将原来的state.list代替
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 清除已完成的任务
    cleanDone(state) {
      state.list = state.list.filter(x => x.done === false)
    }
复制代码

按钮的高亮效果切换

  • 为要高亮的按钮绑定单击事件,并为每个事件设置不同的字符串
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a-button @click="changeList('all')" >全部</a-button>
<a-button @click="changeList('undone')" >未完成</a-button>
<a-button @click="changeList('done')" >已完成</a-button>
复制代码
  • 初始化单击函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 修改页面上展示的列表数据
    changeList(key) {
      console.log(key)
      this.$store.commit('changeViewKey', key)
    }
复制代码
  • 向state中新增viewKey用来存储高亮显示的按钮并通过mutation来完成viewKey的切换
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
state: {
    viewKey: 'all'
  },
  mutations: {
    // 修改视图关键字
    changeViewKey(state, key) {
      state.viewKey = key
    }
  },
复制代码
  • 用外部引入的方式将viewKey搞到app.vue上
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    ...mapState(['list', 'inputValue', 'viewKey']),
复制代码
  • 当viewKey = 当前按钮的字符串时,type值变为primary,否则变为default,记住要属性绑定
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a-button
            :type="viewKey === 'all' ? 'primary' : 'default'"
            @click="changeList('all')"
            >全部</a-button
          >
          <a-button
            :type="viewKey === 'undone' ? 'primary' : 'default'"
            @click="changeList('undone')"
            >未完成</a-button
          >
          <a-button
            :type="viewKey === 'done' ? 'primary' : 'default'"
            @click="changeList('done')"
            >已完成</a-button
          >
复制代码

点击按钮切换状态条数

  • 因为数据源一直是list所以点按钮没有用
  • 所以只需要让list能够动态变化就可以了
  • 在getter中新增函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
infolist(state) {
      if (state.viewKey === 'all') {
        return state.list
      }
      if (state.viewKey === 'undone') {
        return state.list.filter(x => !x.done)
      }
      if (state.viewKey === 'done') {
        return state.list.filter(x => x.done)
      }
      return state.list
    }
复制代码
  • 将state的list删除,取而代之的是新的Getters变化的list
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a-list bordered :dataSource="infolist" class="dt_list">


computed: {
    ...mapState(['inputValue', 'viewKey']),
    ...mapGetters(['unDoneLength', 'infolist'])
  },

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
plotly-express-12-plotly实现多子图
在很多的实际业务需求中,需要将多个图形集中放置一个figure中,而不是单独显示,在这种情况下我们需要使用子图的概念。本文中讲解如何在plotly中使用plotly.graph_objects绘制各种形式的子图
皮大大
2021/03/01
3.3K0
plotly-express-12-plotly实现多子图
把饼图的位置移到想要的位置就报错了,怎么破?
前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python画图的问题,一起来看看吧。问题描述:
Python进阶者
2023/12/21
1900
把饼图的位置移到想要的位置就报错了,怎么破?
中国奥运会成绩,知道多少?13张图告诉你
最近奥运会也是非常热门的事件,但是针对本次奥运会有很多值得吐槽的地方,小岛国的骚气操作不想写
Python进阶者
2021/08/20
4990
kaggle-3-Appstore
The ever-changing mobile landscape is a challenging space to navigate. . The percentage of mobile over desktop is only increasing. Android holds about 53.2% of the smartphone market, while iOS is 43%. To get more people to download your app, you need to make sure they can easily find your app. Mobile app analytics is a great way to understand the existing strategy to drive growth and retention of future user.
皮大大
2021/03/01
5980
kaggle-3-Appstore
Plotly绘图,快速入门
Plotly是一个用于创建交互式图表的Python库,它支持多种图表类型,如折线图、散点图、饼图、热力图等。Plotly的特点如下:
皮大大
2024/06/29
3540
kaggle实战-黑色星期图画像分析
本文是对还是kaggle上一份黑色星期五消费数据的分析,主要是针对用户和商品信息的画像分析。
皮大大
2023/08/25
2720
深入探索 Plotly-打造交互式数据可视化的终极指南
文章链接:https://cloud.tencent.com/developer/article/2466316
一键难忘
2024/11/22
5480
Plotly,一个超强的Python可视化库!
数据可视化是数据分析和探索的一个重要方面,它有助于深入了解数据集中的潜在模式、趋势和关系。
小F
2023/12/21
6440
Plotly,一个超强的Python可视化库!
8个plotly绘图技巧
Plotly 是一个用于创建交互式数据可视化的 Python 库,它允许你轻松地生成各种类型的图表和图形,包括折线图、散点图、柱状图、饼图、热力图、3D 图等。
皮大大
2023/09/17
8030
我用python掐指一算,2020高考分数和录取情况可能是这样
“迟到”了一个月的高考终于要来了。 正好我得到了一份山东新高考模拟考的成绩和山东考试院公布的一分一段表,以及过去三年的普通高考本科普通批首次志愿录取情况统计。2020年是山东新高考改革的元年,全新的录取模式以及选考科目要求都给考生带来了非常大的挑战。 我正好就本次山东模拟考的成绩进行深入数据分析,用python可视化带大家模拟一下2020高考分数和录取情况。 (代码较长,故只展示部分,完整数据+源码下载见文末) 1、不同考生的成绩分布图 首先对山东新高考模拟考的成绩进行总体描述: fig = 
腾讯NEXT学位
2020/07/07
4990
Pandas数据分析经典案例
本案例中用的数据是小编自行模拟的,主要包含两个数据:订单数据和水果信息数据,并且会将两份数据合并
皮大大
2022/01/12
2K1
Pandas数据分析经典案例
Python数据可视化入门教程
什么是数据可视化?数据可视化是为了使得数据更高效地反应数据情况,便于让读者更高效阅读,通过数据可视化突出数据背后的规律,以此突出数据中的重要因素,如果使用Python做数据可视化,建议学好如下这四个Python数据分析包,分别是:
张俊红
2023/03/21
2.6K0
Python数据可视化入门教程
Python多维数据可视化详解
数据聚合、汇总和可视化是支撑数据分析领域的三大支柱。长久以来,数据可视化都是一个强有力的工具,被业界广泛使用,却受限于 2 维。在本文中,作者将探索一些有效的多维数据可视化策略(范围从 1 维到 6 维)。
用户8949263
2022/04/08
1.2K0
Python多维数据可视化详解
Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks
导读:学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等。这些可视化库都有自己的特点,在实际应用中也广为大家使用。
IT阅读排行榜
2019/08/21
1.2K0
Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks
python绘图与数据可视化(二)
上一次是于老师要求我做一次备课,讲一节课,上周于老师又自己准备了这个课程,这里放一下于老师课上补充的知识点
十二惊惶
2024/02/28
5200
python绘图与数据可视化(二)
数据可视化 | 手撕 Matplotlib 绘图原理(二)
关于箭头和注释风格的更多介绍与示例,可以在 Matplotlib 的画廊gallery[1]中看到,尤其推荐
数据STUDIO
2021/06/24
1.5K1
plotly可视化快速教程
Plotly是新一代的Python数据可视化开发库,它提供了完善的交互能力和灵活的绘制选项。本文将介绍新手如何安装plotly并编写第一个plotly绘图程序,以及使用plotly绘制常见的5种数据图表。
用户1408045
2019/10/10
2.9K0
plotly可视化快速教程
安利个一行代码的Python可视化神器!
学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等。这些可视化库都有自己的特点,在实际应用中也广为大家使用。
Python数据科学
2023/09/14
4870
安利个一行代码的Python可视化神器!
plotly-express-22-plotly使用技巧大全
本文中将前段时间写的plotly-express可视化库的相关技巧进行整理,方便后续快速实现调用
皮大大
2021/03/01
3K0
plotly-express-22-plotly使用技巧大全
cufflinks可视化包初探
不多说,先画一张再说.还是上文的环境.直接pip install,xxxxx,记得换源
云深无际
2021/04/14
6300
cufflinks可视化包初探
相关推荐
plotly-express-12-plotly实现多子图
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 如何将json数据通过vuex渲染到页面上
  • 如何使文本框输入内容后同步
  • 如何完成添加按钮
  • 如何删除一条数据
  • 复选框默认状态绑定
  • 复选框选中与取消
  • 清除已完成任务
  • 按钮的高亮效果切换
  • 点击按钮切换状态条数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档