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. 修改element-ui里table中悬浮框中三角号的颜色及透明度设置

    .el-tooltip__popper,.el-tooltip__popper.is-dark{background:rgba(0,0,0,0.6) !important;} .el-tooltip_ ...

  2. ORM——Mybatis

    引言 ORM 是 blablabla…… Mybatis知识点

  3. python outline

    1.列表/数组/numpy/Pandas Python list 初始化技巧   (2018-12-27 11:54) python3 sort list   (2019-05-23 14:52) P ...

  4. hostapd 热点设置

    一.  需要安装的服务:hostapd dhcp(isc-dhcp-server) dns(dnsmasq或者bind9或者都不装设成8.8.8.8 ) 二.建hostapd.conf文件   ,su ...

  5. Win10电脑安装虚拟机

    版权声明:本文为CSDN博主「MHades」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/qq_42545 ...

  6. Vulkan SDK 之 Depth Buffer

    深度缓冲是可选的,比如渲染一个3D的立方体的时候,就需要用到深度缓冲.Swapchain就算有多个images,此时深度缓冲区也只需要一个.vkCreateSwapchainKHR 会创建所有需要的i ...

  7. Jenkins-在CentOS7 上安装配置

    Jenkins-在CentOS7 上安装配置 1.安装JDK yum install -y java 2.安装jenkins 方法1:添加Jenkins库到yum库,Jenkins将从这里下载安装. ...

  8. 移动端主页内容 part4 axios

    ajax  可以动态获取数据内容 vue中发送ajax有很多工具可用 浏览器自带的fetch 现在推荐: axios第三方模块(vue中发送ajax) 特点: 跨平台的数据请求 浏览器中xhr请求 n ...

  9. 建立更可靠的OOP程序-类和成员的访问控制

    1. public 成员(公共成员) (1)使用this 关键字的类的成员允许在任何地方被访问. (2)使用 prototype 定义的属性和方法都是公共成员. 这些属性和方法可以在外面任何地方被访问 ...

  10. mybatis中foreach collection的三种用法

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. ...