Vue插件配置和 后台交互

一、全局配置静态文件(csss, js..)

1.1 全局配置css文件

  1. 创建css文件

  2. 在main.js配置css文件

    // 配置全局css样式
    // 方式一
    import '@/assets/css/global.css'
    方式二(推荐使用)
    require('@/assets/css/global.css');

1.2 全局配置js文件

  1. 创建js文件

  2. 在main.js配置js文件

    // 配置全局js文件
    
    // 导入
    import settings from '@/assets/js/settings'
    // 创建全局变量
    Vue.prototype.$settings = settings // $settings名称随意,
  3. 使用:this.$settings, 访问变量

二、store存储仓库的使用

2.1 仓库保存数据

  1. 使用:首先在 store仓库中配置初始数据,一般在state中配置初始化数据,具体使用如下

    eg:
    export default new Vuex.Store({
    state: {
    car: {
    name: '默认',
    price: 0
    }
    },
    mutations: {},
    actions: {},
    modules: {}
    })
  2. 通过点击详情页面的一个列表框,进入对应的商品描述页面

    // home.vue
    <template>
    <div class="home">
    <h1 @click="start_sys">欢迎来到汽车销售系统</h1>
    </div>
    </template> <script>
    export default {
    name: 'home',
    components: {
    },
    created() { },
    methods: {
    start_sys() {
    this.$router.push('/cars')
    }
    }
    }
    </script> <style scoped>
    h1 {
    /*view height*/
    font: normal 80px/100vh '微软雅黑';
    text-align: center;
    }
    </style> // Cars.vue
    <template>
    <div class="cars">
    <Car v-for="car in cars_data" :car="car" :key="car.name"/>
    </div>
    </template> <script>
    import Car from '../components/Car' let cars_data = [
    {
    name: '破鞋',
    price: 1.8
    },
    {
    name: '特斯拉',
    price: 0.8
    }
    ]; export default {
    name: "Cars",
    components: {
    Car
    },
    data() {
    return {
    cars_data
    }
    }
    }
    </script> // car.vue小组件
    <template>
    <div class="car" @click="goDetail(car)">
    <h2>{{ car.name }}</h2>
    <p>{{ car.price }}</p>
    </div>
    </template> <script>
    export default {
    name: "Car",
    props: ['car'],
    methods: {
    goDetail(car) {
    // 先将要显示的汽车对象存储到仓库,详情页加载后,自己去仓库中获取
    // console.log(this.$store.state);
    // 将鼠标点击对应的页面信息
    this.$store.state.car = car;
    this.$router.push('/car/detail')
    }
    }
    }
    </script> // CarDetails.vue
    <template>
    <div class="car-detail">
    <p>{{ car.name}}</p>
    <p>{{ car.price}}</p>
    </div>
    </template> <script>
    export default {
    name: "CarDtails",
    data() {
    return {
    car: {}
    }
    },
    created() {
    this.car = this.$store.state.car
    }
    }
    </script>
    1. 首先在store/index.js中配置初始化数据

      // store/index.js
      export default new Vuex.Store({
      state: {
      car: {
      name: '默认',
      price: 0
      }
      },
      mutations: {},
      actions: {},
      modules: {}
      })
    2. 进入cars页面渲染的数据,当点击各个车列表信息的时候,给他绑定一个点击事件,然后将点击的当前的数据赋值给store中中的初始化数据 this.$store.state.car = this.car,然后跳转到详情页面 this.$router.push('/car/detail');

    3. 然后进入到detail.vue中,然后获取仓库的数据将值赋值给 this.car = this.$store.state.car,渲染页面

    4. 缺点:当页面刷新之后this.car = this.$store.state.car,this.car的值就为store/index.js中数据初始化的值

    2.2 保存数据对比

    1. cokies: 在浏览中保存数据,没有设置时间关闭浏览器则会消失,一旦设置了时间则会时间到cookies被删除
    2. session: 浏览器关闭,则清除
    3. localStorage: 相当于一个数据库,永久保存数据,保存的是一个字符串
    4. sessionStorage:关闭及消失

`

三、element插件配置与使用

element插件官网

3.1 安装

cnpm install element-ui

3.2 配置环境,在main.js中配置

// 导入
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css';
// 全局配置
Vue.use(ElementUI);

3.3 使用

  1. 创建.vue
  2. 将一行分为24等份
  3. 官网教程

四、配置jq+bs环境

Bootstrap官网

3.1 安装插件

// 安装jquery
cnpm install jquery // 安装bootstrap3
cnpm install bootstrap@3

3.2 配置环境

  1. 配置jquery环境

    vue/ 配置jQuery:在vue.config.js中配置(没有,手动项目根目录下新建)

    const webpack = require("webpack");
    
    module.exports = {
    configureWebpack: {
    plugins: [
    new webpack.ProvidePlugin({
    $: "jquery",
    jQuery: "jquery",
    "window.jQuery": "jquery",
    Popper: ["popper.js", "default"]
    })
    ]
    }
    };
  2. 配置BootStrap:在main.js中配置

// 配置环境:jq在vue.config.js中配置
import "bootstrap" // 加载bs的逻辑(js)
import "bootstrap/dist/css/bootstrap.css"

3.3 使用

  1. 创建*.vue
  2. 将一行分为12等份
  3. 官网教程

五、Vue和django前后台交互

'django.middleware.common.CommonMiddleware', # 自动给url添加/

request.META: 前台所有请求的信息都在这里面,可以进行反爬

5.1 django处理后台处理跨域(CORS)

1.安装插件

>: pip install django-cors-headers

插件参考地址:https://github.com/ottoyiu/django-cors-headers/

2.项目配置settings.py

# 注册app
INSTALLED_APPS = [
...
'corsheaders'
] # 添加中间件
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware'
] # 允许跨域源
CORS_ORIGIN_ALLOW_ALL = True

5.2 配置axios来完成前后台ajax请求

5.2.1 jq完成ajax请求

1. 安装ajax

// 安装jquery
cnpm install jquery
  1. 配置jquery环境

2. 配置axios环境

vue/ 配置jQuery:在vue.config.js中配置(没有,手动项目根目录下新建)

const webpack = require("webpack");

module.exports = {
configureWebpack: {
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
Popper: ["popper.js", "default"]
})
]
}
};

3. ajax使用

 created() {
let _this = this; console.log(this.$settings.base_url + '/cars/');
// 1、jq完成ajax请求 $.ajax({
url: this.$settings.base_url + '/cars/',
type: 'get', success(response) {
_this.cars_data = response;
console.log(_this.cars_data);
console.log(response); }
});

总结:

一定要注意返回来的this

5.2.2 axios完成ajax请求

1. 安装axios

> cnpm install axios

2. 配置axios环境

// 导入
import Axios from 'axios'
// 配置全局
Vue.prototype.$ajax = Axios; // $ajax 名字随意

3. axios使用

 // 2、vue有专门用来完成ajax请求的插件:axios

this.$ajax({
url: this.$settings.base_url + '/cars/',
method: 'get',
params: {
// get请求携带的数据 url拼接参数,
},
data: {
// post请求携带的数据 数据包参数
},
}).then(response => {
console.log(response);
this.cars_data = response.data
}).catch(error => {
console.log(error); });
def cars(request, *args, **kwargs):
if request.method == 'GET':
print(request.GET)
print(request.POST)
print(request.body)
elif request.method == 'POST':
print(request.GET)
print(request.POST)
print(request.body)
cars_data = [
{
"name": '风火轮',
"price": 8.888
},
{
'name': '跑车',
'price': 6.6
} ]
return JsonResponse(data=cars_data, safe=False, json_dumps_params={"ensure_ascii": False})

总结:

  1. get:请求不会携带post中的数据(data),get请求会自动拼接url数据 eg: /cars/?name=randy&age=21

  2. post请求会携带get中的数据(params), django对请求的数据不会处理,将数据放在request.body中,需要自己手动处理

六、Vue前台操作Cookies

1. 安装Cookies

> cnpm install vue-cookies

2. 配置Cookies环境

// 导入
import Cookies from 'vue-cookies' // 配置全局
Vue.prototype.$cookies = Cookies; // $cookies 名字随意

3. Cookies使用

 let token = response.data.result;
if (token) {
// 有响应的登录认证码,存储在cookie中
// 设置:set(key, value, exp)
// 取值:get(key)
// 删除:remove(key)
this.$cookies.set('token', token, '2d');
this.$cookies.set('token', token, 2 * 24 * 3600 * 365);
console.log(this.$cookies.get('token'));
this.$cookies.remove('token');
}
  1. 设置cookies (set(key, value,exp))

    • this.$cookies.set('token', token,) // 浏览器窗口关闭cookies则删除

    • this.$cookies.set('tooken', token, “2d”) // 两天之后删除, exp可以是字符串也可以数值

  2. 取cookies值:get(key)

    • this.$cookies.get('token') // 获取cookies设置的值
  3. 删除cookies值: remove(key)

    • this.$cookies.remove('token') // 删除cookies的本质在于将设置了cookies过期的时间

Vue插件配置和 后台交互的更多相关文章

  1. webstrom11 vue插件配置

    直接上图 1. 安装vue插件 2.添加模板 3.指定模板类型 最新的是插件 是 vue.js 创建完 Vue File 文件后 需要在 下面这里关联一下

  2. vue创建路由,axios前后台交互,element-ui配置使用,django contentType组件

    vue中创建路由 每一个vue组件都有三部分组成 template:放html代码 script:放js相关 style:放css相关 vue中创建路由 1.先创建组件 Course.vue 2.ro ...

  3. vue和php-前后台交互

    vue和php-前后台交互 前端主要代码: <template> <div class="main-member-info"> <form @subm ...

  4. 7.vue前台配置、插件、组件

    目录 luffy前台配置 axios前后台交互 cookies操作 element-ui页面组件框架 bootstrap页面组件框架 luffy前台配置 axios前后台交互 安装:前端项目目录下的终 ...

  5. vscode vue js 开发插件配置

    安装 vetur { // 自动补全触发范围---双引号内的字符串也可以触发补全 "editor.quickSuggestions": { "other": t ...

  6. Vue插件资料

    UI组件element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和WeUI的组件库 iview ★5801 - 基于 Vuejs 的开源 UI ...

  7. 搭建Flask+Vue及配置Vue 基础路由

    最近一直在看关于Python的东西,准备多学习点东西.以前的项目是用Vue+Java写的,所以试着在升级下系统的前提下.能不能使用Python+Vue做一遍. 选择Flask的原因是不想随大流,并且比 ...

  8. 前端笔记之Vue(七)Vue-router&axios&Vue插件&Mock.js&cookie|session&加密

    一.Vue-router(路由) 1.1路由创建 官网:https://router.vuejs.org/zh/ 用 Vue.js + Vue Router 创建单页应用,是非常简单的.使用 Vue. ...

  9. vue项目搭建和开发流程 vue项目配置ElementUI、jQuery和Bootstrap环境

    目录 一.VUE项目的搭建 1. 环境搭建 2. 项目的创建和启动 二. 开发项目 1. 配置vue项目启动功能 2. 开发vue项目 (1)项目文件的作用 (2)vue项目开发流程 (3)vue项目 ...

随机推荐

  1. spring监听器+定时任务

    背景:在原SSM项目中,拟定在每晚的23:59:59执行一个批处理任务. 设计思路:用jdk自带的定时器触发任务执行,设置下次执行间隔为24小时.定时任务由spring的监听器去启动. jdk版本:1 ...

  2. HDU - 5898 odd-even number (数位dp)

    题意:求一个区间内,满足连续的奇数长度是偶数,连续的偶数长度是奇数的数的个数. #include<cstdio> #include<cstring> #include<c ...

  3. 2020牛客寒假算法基础集训营5 部分题解(BDEH)

    B: 牛牛战队的比赛地(二分做法)题意:二维平面给定n个点,在x轴找一点使得到n个点距离的最大值最小. 思路:我们可以将问题转化为在x轴找到一个圆心,使得该圆包含这n个点且半径最小,这样就变成了最小圆 ...

  4. 大二暑假第二周总结--开始学习Hadoop基础(一)

    一.简单视频学习Hadoop的处理架构 二.简单视频学习分布式文件系统HDFS并进行简单的实践操作 简单操作教程:http://dblab.xmu.edu.cn/blog/290-2/ 注意:在建立H ...

  5. PageHelper使用

    之前我们整合过SSM框架,可以查询数据库数据,项目中一般不会全部查询所有数据,为了美观和性能,都是采用分页形式查询数据 一:pom.xml导入pagehelper.jar <!-- https: ...

  6. Resource interpreted as Stylesheet but transferred with MIME || DevTools failed to parse SourceMap:

    最近在学SpringBoot,在整合Thymeleaf的时候,配置拦截器.教学上讲SpringBoot已经做好了静态资源映射,所以不需要特地去做排除拦截 以下代码就是我在做登录拦截的时候配置的拦截. ...

  7. bugku-Web这是一个神奇的登陆框(sqlmap+bp)

    根据url提示是让sql注入,但万能密码又无效,这里我们用sqlmap+bp来解题. 首先输入用户密码来登录用bp抓包: 如图将其保存到txt文件中,然后用SQLmap来注入 输入命令暴库:sqlma ...

  8. StringBuffer类、StringBuilder类详解

    StringBuffer是一个字符串缓冲区,是一个容器,而且长度可变,可以直接操作多个数据类型, 最终会通过toString()方法变成字符串. 容器的功能有: 1.存储 public StringB ...

  9. C++ DirectShow读取摄像头后然后保存图像数据

    #include <stdio.h> #include "camerads.h" #include <highgui.h> const char *g_sz ...

  10. 3DES 原理

    3DES的原理: 加密阶段:用密钥1加密->用密钥2解密->用密钥3加密 解密阶段:用密钥3解密->用密钥2加密->用密钥1解密 版权声明:本文为博主原创文章,未经博主允许不得 ...