zoukankan      html  css  js  c++  java
  • 搭建前端项目(2)

    一 创建项目目录

    cd 项目目录
    vue init webpack lufeiweb

    启动项目
    npm run dev

    效果:

     

     

     

    接下来,我们根据终端上效果显示的对应地址来访问项目(如果有多个vue项目在运行,8080端口被占据了,服务器会自动改端口,所以根据自己实际在操作中看到的地址来访问。)

    访问:http://localost:8080

     

    二 初始化前端项目

    清除默认的HelloWorld组件和APP.vue中的默认样式

    三 安装路由vue-router

    3.1 下载路由组件

    #项目根目录执行
    npm i vue-router -S

    3.2 配置路由

    3.2.1 初始化路由对象

    在src目录下创建routers路由目录,在routers目录下创建index.js路由文件

    index.js路由文件中,编写初始化路由对象的代码 .

     

    import Vue from "vue"
    import Router from "vue-router"

    // 这里导入可以让让用户访问的组件

    Vue.use(Router);

    export default new Router({
     // 设置路由模式为‘history’,去掉默认的#
     mode: "history",
     routes:[
       // 路由列表

    ]
    })

    3.2.2 注册路由信息

    打开main.js文件,把router对象注册到vue中.

     

    代码:

    // The Vue build version to load with the `import` command
    // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
    import Vue from 'vue'
    import App from './App'
    import router from './routers/index';

    Vue.config.productionTip = false

    /* eslint-disable no-new */
    new Vue({
     el: '#app',
     router,
     components: { App },
     template: '<App/>'
    });

     

    3.2.4 在视图中显示路由对应的内容

    在App.vue组件中,添加显示路由对应的内容。

    代码:

    <template>
     <div id="app">
       <router-view/>
     </div>
    </template>

    <script>
    export default {
     name: 'App',
     components: {

    }
    }
    </script>

    <style>

    </style>

     

    四 引入ElementUI

    npm i element-ui -S

    配置ElementUI到项目中

    在main.js中导入ElementUI,并调用。

    代码:

    // elementUI 导入
    import ElementUI from 'element-ui';
    import 'element-ui/lib/theme-chalk/index.css';
    // 调用插件
    Vue.use(ElementUI);

    效果:

     

    成功引入了ElementUI以后,接下来我们就可以开始进入前端页面开发,首先是首页。

    接下来我们把之前完成的首页,直接拿过来使用[注意除了组件以外,还有静态文件也需要拿过来,包括App.vue里面的公共样式],并运行项目。

     

    五 跨域CORS

    我们现在为前端和后端分别设置两个不同的域名

    window 系统: C:WindowsSystem32driversetchost

    linux/mac系统: /etc/hosts

    位置域名
    前端 www.luffycity.cn
    后端 api.luffycity.cn

    编辑/etc/hosts文件,可以设置本地域名

    在文件中增加两条信息

    127.0.0.1   api.luffycity.cn
    127.0.0.1   www.luffycity.cn

    通过浏览器访问drf项目,会出现以下错误信息

    可以通过settings的ALLOWED_HOSTS,设置允许访问

    # 设置哪些客户端可以通过地址访问到后端
    ALLOWED_HOSTS = [
       'api.luffycity.cn',
       'www.luffycity.cn',
       'localhost',  # 实际开发的时候不会写上localhost和127.0.0.1的
       '127.0.0.1',
    ]

     

    现在,前端与后端分处不同的域名,我们需要为后端添加跨域访问的支持。

    否则前端无法使用axios无法请求后端提供的api数据

    我们使用CORS来解决后端对跨域访问的支持。

    使用django-cors-headers扩展

    在 Response(headers={"Access-Control-Allow-Origin":'客户端地址/*'})
    

     

    六 解决跨域插件

    文档

    1 安装

    pip install django-cors-headers

    2 添加应用

    INSTALLED_APPS = (
        ...
        'corsheaders',
        ...
    )
    中间层设置【必须写在第一个位置】
    
    MIDDLEWARE = [
        'corsheaders.middleware.CorsMiddleware',
        ...
    ]

    3 添加白名单

    # CORS组的配置信息
    CORS_ORIGIN_WHITELIST = (
        '127.0.0.1:8080',
        'localhost:8080',
        'www.luffycity.cn:8080'
    )
    CORS_ALLOW_CREDENTIALS = True  # 允许ajax跨域请求时携带cookie

    完成了上面的步骤,我们就可以通过后端提供数据给前端使用ajax访问了。

  • 相关阅读:
    Android游戏开发研究与主角在地图滚动
    程序猿学一点金融知识,但是,如果没有提示代码
    Java8的日期和时间的库20经常使用的演示样本
    通用Key-Value存储系统的存储管理策略解析
    车库门开启器
    timesten备份和恢复
    HTML DOCTYPE 重要性
    嵌Ruby 2 《捆绑》
    Jexus web server V5.6.1正式公布
    卓尼斯ZT-180评測
  • 原文地址:https://www.cnblogs.com/angle6-liu/p/10598167.html
Copyright © 2011-2022 走看看