首页 > 其他分享 >后端交互与组件

后端交互与组件

时间:2023-02-16 22:34:55浏览次数:31  
标签:Vue 交互 --- json 调用 组件 data

v-model进阶

lazy: 等待input框的数据绑定失去焦点之后再变化
number: 数字开头只保留数字后面的从字母出现开始不保留,字母开头全都保留
trim: 去除首尾的空格
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>
    <script src="./js/vue.js"></script>
</head>
<body>
<div class="app">
    <h1>lazy</h1>
    <p><input type="text" v-model.lazy="name1">{{name1}}---</p>
    <h1>number</h1>
    <p><input type="text" v-model.number="name2">{{name2}}---</p>
    <h1>trim</h1>
    <p><input type="text" v-model.trim="name3">{{name3}}---</p>
</div>

</body>
<script>
    var vm = new Vue({
        el: '.app',
        data: {
            name1: '',
            name2: '',
            name3: '',
        }
    })
</script>
</html>

与后端交互

axions发送ajax请求

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../js/vue.js"></script>
    <script src="../js/axios.js"></script>


</head>
<body>
<div class="app">
    <h1>热映电影</h1>
    <button @click="handleClick">点我</button>
    <ul>
        <li v-for="item in dataList">
            <h2>名字:{{item.name}}</h2>
            <h3>导演:{{item.director}}</h3>
            <h3>类型:{{item.category}}</h3>
            <p>简介:{{item.synopsis}}</p>
            <img :src="item.poster" alt="" height="300px" width="200px">

        </li>
    </ul>

</div>
</body>
<script>
    var vm = new Vue({
        el: '.app',
        data: {
            dataList: []
        },
        methods: {
            handleClick() {
                //1  axios
                axios.get('http://127.0.0.1:8000/api/').then(res => {
                    this.dataList = res.data.data.films
                })


            }
        }

    })
</script>
</html>
后端代码:

import json

from django.shortcuts import render
from rest_framework.response import Response
from rest_framework.views import APIView

# Create your views here.


class VueView(APIView):
    def get(self, request):
        # film.json为从https://m.maizuo.com/v5/?co=mzmovie#/films/nowPlaying爬取的json数据
        with open('app01/film.json', 'r', encoding='utf-8') as f:
            res_dict = json.load(f)

        return Response(data=res_dict, headers={'Access-Control-Allow-Origin': '*'})

    
路由:
path('api/', views.VueView.as_view())

vue生命周期

从Vue实例创建开始到实例被销毁,总共经历了8个生命周期钩子函数(只要写了就会执行)
8个生命周期函数
    beforeCreate    创建Vue实例之前调用
    created         创建Vue实例成功之后调用,可以在此处发送异步请求后端数据
    beforeMount     渲染DOM之前调用
    mounted         渲染DOM之后调用
    beforeUpdate    重新渲染之前调用,就是数据更新等操作时控制DOM重新渲染
    updated         重新渲染完成之后调用
    beforeDestory   销毁之前调用
    destoryed       销毁之后调用
    
这8个钩子函数用的最多的就是created
beforeDestory作用
    创建组件,created中启动一个定时器,组件被销毁使用beforeDestory销毁定时器

Vue组件

组件分类
    全局组件:在任意组件中都能使用
    局部组件:只能在当前组件中使用

定义全局组件

Vue.component('child', {
    template: `
      <div>
      <button>后退</button>
      <span style="font-size: 40px">首页--{{ name }}</span>
      <button @click="handleFor">前进</button>
      <lqz1></lqz1>
      </div>`,// 里面写html内容,必须包在一个标签中
    data() {              // data必须是方法,返回对象
        return {
            name: '彭于晏',
            t: null
        }
    },
    methods: {
        handleFor() {
            this.name = 'lqz'
        }
    },
    components: {
        'lqz1': {
            template: `
              <div>
              <h1>局部组件---{{ age }}</h1>
              </div>`,
            data() {
                return {
                    age: 19
                }
            }
        },

    }


})

定义局部组件

var foo={
                template: `
                  <div>
                  <h1>局部组件---{{ age }}</h1>
                  </div>`,
                data() {
                    return {
                        age: 19
                    }
                }
            }



    var vm = new Vue({
   		...
        components: {
            foo

        }


    })

标签:Vue,交互,---,json,调用,组件,data
From: https://www.cnblogs.com/zyg111/p/17128530.html

相关文章

  • Vue框架:5、购物车案例,v-model进阶操作,与后端交互的方式
    目录前端开发之Vue框架一、购物车案例1、基本购物车2、购物车-优化二、v-model进阶操作三、与后端交互1、jqery对象的ajax2、fetch发送ajax请求3、axios发送ajax请求4、展......
  • Vue框架:4、Vue生命周期,Vue组件
    目录前端开发之Vue框架一、Vue生命周期1、vue生命周期是什么?2、vue生命周期的八个阶段二、Vue组件1、组件是什么2、全局组件2、组件小结前端开发之Vue框架一、Vue生命......
  • main(调用一个公共组件)
    app.vue<template> <div> <Student/> <School></School> </div></template><!-- 1.作用(mixin):将多个组件内相同的方法提取到一个混合对象 2.如何使用: 全局使......
  • python语法入门之与用户交互、运算符
    目录一、程序与用户交互1.什么是与用户交互用户交互就是人往计算机中input/输入数据,计算机print/输出结果2.为什么要与用户交互为了让计算机能够像人一样与用户沟通交......
  • 基于spring-boot-starter-JDBC组件的通用增删改查
    前言配合嵌入式数据库使用,比如H2,sqlite嵌入式关系型数据,很香!pom<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc......
  • vue学习之-----组件递归调用
    1、关键点2、父组件<template><div><divclass="btn-title"><el-button@click="addRule(ruleDataList.id)">添加父节点</el-button>......
  • 自己封装vue echart组件 方便调用
    <template><div><divref="lineChart":style="{width:width,height:height}"></div></div></template><script>importechartsfrom'echar......
  • vue3+jsx+antd项目,ant design vue组件中日期组件的自定义格式
    目标效果实际效果关键代码,直接从react版本的antd复制的代码,并修改了,current加上了moment(current)<DatePickerdateRender={current=>{conststyle......
  • vue2组件懒加载(Vue Lazy Component )
    1.介绍:是vue组件懒加载的预估插件组件。支持组件组件延时加载,加载真实组件前展示骨架组件,提高用户体验,真实组件代码分包异步加载//安装npminstall@xunlei/vue-laz......
  • 免交互与Expect基本命令
    一、HereDocument免交互概念1.定义HereDocument是标准输入的一种替代品,可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生产出一个文件并用作命令......