vue前端项目的结构分析

1.项目结构

vue前端项目的结构分析_第1张图片

2.结构目录介绍

2.1nuxt包里面放的一些nuxt的路由,组件和通用页面。
vue前端项目的结构分析_第2张图片
2.api文件夹放的是远程请求后端交互
vue前端项目的结构分析_第3张图片
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.comp>
                        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文件
用法介绍

你可能感兴趣的:(JS,+,Vue,vue.js,前端,javascript)