vue前端项目的结构分析

1.项目结构

在这里插入图片描述

2.结构目录介绍

2.1nuxt包里面放的一些nuxt的路由,组件和通用页面。
在这里插入图片描述
2.api文件夹放的是远程请求后端交互
在这里插入图片描述
2.3assets文件夹里面放的是样式,插件和图片。
2.4components文件夹是微信组件。
2.5layout文件夹放的是页尾页面。
2.6middleware文件夹是空的略。
2.7pages文件夹是页面的插值表达式都是使用异步方法在渲染页面之前获取到数据。

<template>
    <div>
        <div class="wrapper activities">
            <h1>{{ item.name }}</h1>
            <div class="img-text">
                <div class="left-img">
                    <img :src="item.image" alt=""/>
                </div>
                <div class="right-txt">
                    <p>开始时间: {{ item.starttime }}</p>
                    <p>结束时间: {{ item.endtime }}</p>
                    <p>举办地点: {{ item.address }}</p>
                    <p>主办方: {{ item.sponsor }}</p>
                    <p>报名截止: {{ item.enrolltime }}</p>
                    <div class="join">
                        <button class="sui-btn btn-danger">立即报名</button>
                        <span class="will">报名即将开始</span>
                    </div>
                </div>
            </div>
            <div class="simple-text">
                <div class="left-content">
                    <div class="content-item">
                        <div class="tit">
                            <span>大会介绍</span>
                        </div>
                        <div class="text">
                            <h4></h4>
                            <p>{{ item.summary }}</p>
                        </div>
                    </div>
                    <div class="content-item">
                        <div class="tit">
                            <span>议题简介</span>
                        </div>
                        <div class="text">
                            <h4></h4>
                            <p>{{ item.detail }}</p>
                        </div>
                    </div>
                </div>
                <div class="right-intro">
                    <div class="content-item">
                        <div class="tit">
                            <span>活动组织者</span>
                        </div>
                        <div class="text">
                            <p>主办方: {{ item.sponsor }}</p>
                        </div>
                    </div>
                    <div class="content-item">
                        <div class="tit">
                            <span>相关链接</span>
                        </div>
                        <div class="text">
                            <p>活动官网: infoQ.com</p>
                        </div>
                    </div>
                    <div class="content-item">
                        <div class="tit">
                            <span>分享扩散</span>
                        </div>
                        <div class="social-share" data-sites="weibo, wechat, qq, qzone, douban"
                             :data-title="'十次方 - ' + item.name">
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<script>
    import "~/assets/css/page-sj-activity-detail.css";
    import gatheringApi from "@/api/gathering";

    export default {
        asyncData({params}) {
            return gatheringApi.findById(params.id).then(response => {
                return {
                    item: response.data.data,
                };
            });
        },
        async function({params}) {
            return gatheringApi.findById(params.id).then(response => {
                return {
                    item: response.data.data,
                };
            });
        },
        head: {
            script: [
                {src: 'http://cdn.bootcss.com/social-share.js/1.0.16/js/social-share.min.js'},
            ],
            link: [
                {rel: 'stylesheet', href: 'http://cdn.bootcss.com/social-share.js/1.0.16/css/share.min.css'},
            ],
        },
    }
</script>

<style scoped>

</style>

2.8label文件夹和后面的基本都是和2.7的功能写法相似。
2.9nuxt.config.js文件是配置标题,插件,样式和指定模块。

module.exports = {
    /*
    ** Headers of the page
    */
    head: {
        title: '十次方',
        meta: [
            {charset: 'utf-8'},
            {name: 'viewport', content: 'width=device-width, initial-scale=1'},
            {hid: 'description', name: 'description', content: 'Nuxt.js project'}
        ],
        link: [
            {rel: 'icon', type: 'image/x-icon', href: '/favicon.ico'}
        ]
    },
    // 配置插件
    plugins: [
        // ssr: 是否需要服务端渲染
        { src: '~/plugins/vue-infinite-scroll.js', ssr: false },
        { src: '~/plugins/element-ui.js', ssr: false },
        { src: '~plugins/nuxt-quill-plugin.js', ssr: false },
    ],
    css: [
        'element-ui/lib/theme-chalk/index.css',
        // quill-editor
        'quill/dist/quill.snow.css',
        'quill/dist/quill.bubble.css',
        'quill/dist/quill.core.css',
    ],
    /*
    ** Customize the progress bar color
    */
    loading: {color: '#3B8070'},
    /*
    ** Build configuration
    */
    build: {
        /*
        ** Run ESLint on save
        */
        extend(config, {isDev, isClient}) {
            if (isDev && isClient) {
                config.module.rules.push({
                    enforce: 'pre',
                    test: /\.(js|vue)$/,
                    loader: 'eslint-loader',
                    exclude: /(node_modules)/
                })
            }
        }
    }
};


2.10package.json与package-lock.json文件
用法介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bst@微胖子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值