VUE调用接口返回数据库数据

本文探讨了Vue.js中使用JSONP原理来实现跨域获取数据库接口数据的方法。首先简述了JSONP的基本原理,包括动态创建script标签和在Node.js环境下模拟JSONP服务器。接着展示了Vue.js的HTML模板,包括输入框、按钮和表格,并利用Vue实例的data、methods及生命周期钩子函数,实现获取、添加和删除数据的功能。尽管没有实际接口进行测试,但提供了大致的实现思路。
部署运行你感兴趣的模型镜像

一.jsonp原理:

      略:动态创建script标签,实现跨域。。。

      略:结合node手写jsonp服务器。。。

             ①nser快速创建一个node服务器,判断请求路径后返回脚本字符串

             ②调用。通过<script src=“http://127.0.0.1/getscript”></script>

二.数据库请求的接口和返回值的格式这种感jio:

接口地址:http://xxx/xx/getAllList
作用:获取数据库列表
请求方式:get
传入参数:木有
返回数据格式:

{

    status:0 //成功返回0

    -message:[

          {

               xx1:xxxx

               xx2:xxxx

          },

          ...

     ]

}

实现:(没接口没测,大体就是这样的suo~~~JSONP的没做)

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <script src="https://unpkg.com/vue/dist/vue.min.js"></script>

</head>

<body>

    <div id="app">

        <input type="text" name="name">

        <input type="text" name="age">

        <input type="button" @click="add">

        <div v-for="(item, index) in list" :key="item.id"></div>

        <table>

            <thead>

            <tr>

                <th>ID</th>

                <th>NAME</th>

                <th>AGE</th>

            </tr>

            </thead>

            <tbody>

            <tr  v-for="(item, index) in list" :key="item.id">

                <td>{{item.id}}</td>

                <td>{{item.name}}</td>

                <td>{{item.age}}</td>

            </tr>

            </tbody>

            

            </table>

    </div>

 

    <script>

 

        var vm=new Vue({

            el:'#app',

            data:{

                list:[

                    {name:xx1,age:12},

                    {name:xx2,age:23}

                ]

            },

            created:function (){

                this.getAllList//刷新页面

            },

            methods:{

                getAllList(){

                    this.$http.get('http://xxx/xx/getAllList').then((result)=>{

                        var result = result.body

                        if(result.status===0){

                            this.list=result.message

                        }else{

                            alert("shibai")

                        }

                    })

                },

                add(){

                    this.$http.post('http://xxx/xx/addProduct',{name:this.name},{emulateJSON:true}).then((result)=>{//emulateJSON可以定义为全局启用

                        var result = result.body

                        if(result.status===0){

                            this.getAllList

                        }else{

                            alert("shibai")

                        }

                    })

                },

                del(id){

                    this.$http.get('http://xxx/xx/delProduct'+id).then((result)=>{

                        var result = result.body

                        if(result.status===0){

                            this.getAllList

                        }else{

                            alert("shibai")

                        }

                    })

                }

        })

    </script>

 

</body>

</html>

 

 

 

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

Vue 3 中处理和使用接口返回数据,通常涉及以下几个关键步骤:定义数据结构、调用接口获取数据、更新响应式状态,并根据返回结果渲染视图或执行后续逻辑。 ### 接口调用数据获取 Vue 3 支持多种方式调用接口,包括原生的 `fetch`、`async/await` 以及第三方库如 `axios`。这些方法可以用于从后端服务获取数据,例如从数据库中请求列表信息[^1]。 以下是一个使用 `async/await` 和 `fetch` 调用接口并解析 JSON 响应的示例: ```ts import { ref, onMounted } from 'vue' export default { setup() { const dataList = ref([]) const fetchData = async () => { try { const response = await fetch('http://xxx/xx/getAllList') const result = await response.json() dataList.value = result } catch (error) { console.error('接口调用失败:', error) } } onMounted(() => { fetchData() }) return { dataList } } } ``` 上述代码通过 `onMounted` 生命周期钩子触发接口调用,在组件挂载时获取数据并更新响应式引用 `dataList` 的值[^1]。 ### 数据绑定与视图更新 当接口返回数据后,可以通过 Vue 的响应式系统自动更新视图。例如,在模板中使用 `v-for` 循环遍历接口返回的数组,动态生成 DOM 元素[^3]。 ```html <template> <div class="flex" style="height: 25vh; overflow: auto"> <div v-for="(item, index) in dataList" :key="index"> <div class="chartsis chart" @click="echarts(item, index)"> </div> <span class="span">{{ item.groupKeyDisplay }}</span> </div> </div> </template> ``` 该模板部分展示了如何将接口返回数据映射到页面元素上,确保用户界面能够随着数据变化而自动更新[^3]。 ### 异步操作与 DOM 更新控制 由于 Vue 的 DOM 更新机制是异步的,有时需要在数据更新后立即访问最新的 DOM 状态。此时可以结合 `nextTick` 方法来确保当前批次的 DOM 已完成更新: ```ts import { nextTick } from 'vue' const updateDataAndFocus = async () => { dataList.value.push({ groupKeyDisplay: '新数据' }) await nextTick() // 此处可安全地对新增的 DOM 进行操作 } ``` 这种方式常用于需要精确控制 DOM 操作时机的场景,例如手动聚焦输入框、测量布局尺寸等[^1]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值