zoukankan      html  css  js  c++  java
  • Vue

    Vuex仓库

    概念

    vuex仓库是vue全局的数据仓库,好比一个单例,在任何组件中通过this.$store来共享这个仓库中的数据,完成跨组件间的信息交互。相当于一个临时的仓库,会在浏览器刷新后重置

    使用

    // store.js
    import Vue from 'vue'
    import Vuex from 'vuex'
    
    Vue.use(Vuex)
    
    export default new Vuex.Store({
        state: {
            // 设置任何组件都能访问的共享数据
            course_page:''
        },
        mutations: {
            // 通过外界的新值来修改仓库中的共享数据的值
            UpdateCoursePage(state,new_page){
                // 只能接收两个参数
                state.course_page=new_page
            }
        },
        actions: {}
    })
    
    // 仓库共享数据的获取与修改:在任何组件的逻辑中
    // 获取
    let cour_page = this.$store.state.course_page
    
    // 直接修改
    this.$store.state.course_page = '新值'
    
    // 方法修改
    this.$store.commit('UpdateCoursePage','新值')
    

    axios前后台交互

    安装:在前端项目目录下的终端

    npm install axios --save
    

    配置:main.js

    // 配置axios,完成ajax请求
    import axios from 'axios'
    Vue.prototype.$axios = axious;
    

    使用:组件的逻辑方法中

    created(){  // 组件创建成功的钩子函数
        // 拿到要访问课程详情的课程id
        let id = this.$route.params.pk || this.$route.query.pk||1
        this.$axios({
            url:`http://127.0.0.1:8000/course/detail/${id}`,  // 后台接口
            method:'POST',  // 请求方式
        }).then(response => {  // 请求成功
            console.log('请求成功')
            console.log(response.data)
            this.course_ctx = response.data;  // 将后台数据赋值给前台变量完成页面渲染
        }).catch(error =>{  // 请求失败
            console.log('请求失败')
            console.log(error.response.data)
        })
    }
    

    跨域问题

    原理

    后台服务器默认只为自己的程序提供数据,其它程序来获取数据,都可能跨域问题

    一个运行在服务上的程序,包含:协议、ip、端口,所以有一个成员不相同都是跨域问题。出现跨域问题,浏览器会抛出 CORS 错误

    django解决跨域问题

    1)安装插件
    pip install django-cors-headers
    
    2)配置settings.py文件
    # 注册app
    INSTALLED_APPS = [
        'corsheaders'
    ]
    # 添加中间件
    MIDDLEWARE = [
        'corsheaders.middleware.CorsMiddleware'
    ]
    # 允许跨域源,True表示允许所有跨域源
    CORS_ORIGIN_ALLOW_ALL = False  
    
    # 设置白名单,允许跨域的白名单
    CORS_ORIGN_WHITELIST = [
        # 本机建议就配置127.0.0.1,127.0.0.1不等于localhost
        'http://127.0.0.1:8080',
        'http://localhost:8080',
    ]
    
  • 相关阅读:
    那些好的句子
    ❤️博客使用说明-飞沙
    求n以内,除5的倍数的和
    C# 枚举
    2021年bilibili程序员节日
    MT管理器使用技巧
    腾讯找人工客服
    校报白皮书
    C语言教程(下)
    svn版本控制
  • 原文地址:https://www.cnblogs.com/863652104kai/p/11443750.html
Copyright © 2011-2022 走看看