Vue理解01

项目建立流程

  • 项目文件夹终端vue ui可视化新建项目(需要一些时间)
  • vscode打开项目
  • npm run serve运行

架构理解:

  • 首先打开的页面默认是index.html
  • index.html默认引用main.js
  • main.js引用需要的页面,默认App.vue。Vue示例挂载
  • 可以在viewcomponent里创建组件或页面
    • view中文件以.vue结尾,包括三部分:
      • template:写html内容
      • script:控制模板当中数据来源和行为
      • style:略

首先实现在App.vue中引用另一个自建页面(使用element实现)

main.js

复制代码
import Vue from 'vue'
import App from './App.vue'
import router from './router'

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.config.productionTip = false
Vue.use(ElementUI);

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

App.vue

复制代码
<template>
  <div>
    <element-view></element-view>
    <h1>{{message}}</h1>
  </div>
</template>

<script>
  import ElementView from './views/element/ElementView.vue'

  export default {
    components: {ElementView},
    data(){
      return {
        message: "I'm Lzy"
      }
    },
    methods:{

    }
  }
</script>

views/element/ElementView.vue

复制代码
<template>
    <div>
        <el-button type="primary">主要按钮</el-button>
    </div>
</template>

<script>
export default {
    
}
</script>

<style>

</style>

下一步,通过导航栏实现页面切换

路由(router):URL中哈希(#)与组件的对应关系。

步骤1:配置路由router/index.js

复制代码
import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [
  {
    path: '/part1',     			  //哈希匹配网址
    name: 'part1',                    //起个名字
    component: () => import('../views/element/ElementView.vue')    //对应页面
  },
  {
    path: '/part2',
    name: 'part2',
    component: () => import('../views/element/PartTwo')
  },
  {                                  //默认第一次访问是'/',需要把这个位置重定向到有效页面。不加这个会出bug。
    path: '/',
    redirect: '/part1'
  }                                
]

const router = new VueRouter({
  routes
})

export default router

同时在对应路径新建对应.vue页面part2

最后修改App.vue(不动的元素放这里,需要切换的部分用标签代替表示即可)

复制代码
<template>
  <div id="app">

    <!-- element布局 -->
    <el-container>     
      <!-- 头部栏  -->
      <el-header style="margin:0px;height: 80px">
        <h1 style="line-height: 40px; font-weight: blod; font-size: 30px; text-align:center">
          {{ message }}
        </h1>
      </el-header>
      <!-- 主体栏 -->
      <el-main>
            <!-- 导航栏 -->
            <el-menu
              router
              :default-active="$route.path"
              class="el-menu-demo"
              mode="horizontal"
              background-color="#545c64"
              text-color="#fff"
              active-text-color="#ffd04b"
            >
              <el-menu-item index="/part1"> 板块一</el-menu-item>
              <el-menu-item index="/part2"> 板块二</el-menu-item>
              <el-menu-item index="/part3"> 板块三</el-menu-item>
            </el-menu>
          
          <router-view></router-view>

      <element-view></element-view>

      </el-main>
    </el-container>
    
  </div>
</template>

<script>
  // import ElementView from './views/element/ElementView.vue'

  export default {
    // components: {ElementView},
    data(){
      return {
        message: "System name"
      }
    },
    methods:{

    }
  }
</script>

<style>
  .el-menu {
    display: flex;
    justify-content: space-evenly;
  }
  .el-menu-item {
    width: 33%;
    text-align: center;
    font-size: 18px !important;
  }
</style>

之后改进:

使用part1完成静态数据的展示

使用part2完成特定种类数据的展示

之后搭建后端,完成数据交换。

展示特定数据

为了异步数据加载:npm install axios

  • 写钩子函数:mounted()
  • 通过axios获取数据
  • 渲染数据

目前需要先完成后端Django的搭建

相关推荐
知识分享小能手20 分钟前
Vue3 学习教程,从入门到精通,Axios 在 Vue 3 中的使用指南(37)
前端·javascript·vue.js·学习·typescript·vue·vue3
伍哥的传说1 小时前
Mitt 事件发射器完全指南:200字节的轻量级解决方案
vue.js·react.js·vue3·mitt·组件通信·事件管理·事件发射器
程序员码歌3 小时前
【零代码AI编程实战】AI灯塔导航-总结篇
android·前端·后端
用户21411832636024 小时前
免费玩转 AI 编程!Claude Code Router + Qwen3-Code 实战教程
前端
一枚小小程序员哈4 小时前
基于Vue + Node能源采购系统的设计与实现/基于express的能源管理系统#node.js
vue.js·node.js·express
小小愿望5 小时前
前端无法获取响应头(如 Content-Disposition)的原因与解决方案
前端·后端
小小愿望5 小时前
项目启功需要添加SKIP_PREFLIGHT_CHECK=true该怎么办?
前端
烛阴5 小时前
精简之道:TypeScript 参数属性 (Parameter Properties) 详解
前端·javascript·typescript
海上彼尚6 小时前
使用 npm-run-all2 简化你的 npm 脚本工作流
前端·npm·node.js
开发者小天6 小时前
为什么 /deep/ 现在不推荐使用?
前端·javascript·node.js