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的搭建

相关推荐
dr李四维13 分钟前
iOS构建版本以及Hbuilder打iOS的ipa包全流程
前端·笔记·ios·产品运营·产品经理·xcode
I_Am_Me_27 分钟前
【JavaEE进阶】 JavaScript
开发语言·javascript·ecmascript
雯0609~34 分钟前
网页F12:缓存的使用(设值、取值、删除)
前端·缓存
℘团子এ37 分钟前
vue3中如何上传文件到腾讯云的桶(cosbrowser)
前端·javascript·腾讯云
学习前端的小z43 分钟前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript
星星会笑滴1 小时前
vue+node+Express+xlsx+emements-plus实现导入excel,并且将数据保存到数据库
vue.js·excel·express
前端百草阁1 小时前
【TS简单上手,快速入门教程】————适合零基础
javascript·typescript
彭世瑜1 小时前
ts: TypeScript跳过检查/忽略类型检查
前端·javascript·typescript
FØund4041 小时前
antd form.setFieldsValue问题总结
前端·react.js·typescript·html
Backstroke fish1 小时前
Token刷新机制
前端·javascript·vue.js·typescript·vue