1.vue脚手架文件结构
├── node_modules:存放项目依赖
├── public: 一般放置一些静态资源(图偏)
│ ├── favicon.ico: 页签图标
│ └── index.html: 主页面
├── src
│ ├── assets: 一般放置多个组件共用的静态资源
│ │ └── logo.png| | ------router :配置项目中的路由
│ │── component: 存放组件的文件夹,一般放置的是非路由组件/全局组件
│ │ └── HelloWorld.vue
│ │── App.vue: 唯一的根组件
│ │── main.js: 整个项目的入口文件
├── .gitignore: git版本管制忽略的配置(哪些文件需要git管理,哪些文件不需要git管理)
├── babel.config.js: babel的相关配置文件
├── package.json: 应用包配置文件,依赖,类似于pom.xml
├── README.md: 应用描述文件
├── package-lock.json:包版本控制文件,缓存性文件,记录项目上的依赖都从那儿来的等信息
注意:一切皆组件一 个组件中
js代码+html代码+css样式
1. VueCli开发方式是在项目中开发-个- 个组件对应一个业务功能模块,日后可以将多个组件组合到一起形成一个前端系统
2.日后在使用vue Cli进行开发时不再书写html,编写的是一个组件, 日后打包时vue cli会将组件编译成运行的html文件
2.如何开发VUECLI
1.父子传参
父类
<template> <div class="about"> <h1>{{msg}}</h1> <div> <ceshi :msg="msg1" @put="resp"></ceshi> </div> </div> </template> <script> import ceshi from "@/views/ceshi"; export default { name: 'about', components: { ceshi }, data(){ return{ msg1: '我是父类msg', } }, methods:{ resp:function (value){ this.msg=value } } } </script>
子类
<template> <div> <h1>{{msg}}</h1> <button @click="emit">点击传值</button> <button @click="baidu">百度一下,你就知道</button> 我是测试模块 <router-view/> </div> </template> 子类 <script> import axios from "axios"; export default { name: "ceshi", props: { msg: { type:String } }, methods:{ emit:function (){ this.$emit('put','子组件的值'); }, baidu:function(){ this.$http.get("https://api.oioweb.cn/api/SimpWords").then(function (resp) { this.string= resp.data.result.content },function (error) { alert(error) }) } } } </script>
2.路由
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) import ceshi from "@/views/ceshi"; import home from "@/views/home"; import course from "@/views/course"; const routes = [ { path: '/', name: 'home', component: home, children: [ // 子路由配置 { path: '/course', name: 'course', component: course } ] }, { path: '/about', name: 'about', component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue') }, { path: '/ceshi', name: 'ceshi', component: ceshi } ] const router = new VueRouter({ routes }) export default routerl 路由展示界面
<template> <div id="app"> <nav> <router-link to="/">Home</router-link> | <router-link to="/about">About</router-link>| <router-link to="/ceshi">ceshi</router-link>| </nav> <router-view/> </div> </template>
3.axios
1.npm install axios
2、全局引入,在src/main.js文件中
-
//main.js
-
import axios from 'axios'
-
//把axios对象挂到Vue实例上面,使用axios的时候直接全局调用this.$http就可以了
-
Vue.prototype.$http = axios
-
axios.get("http://localhost:8080/easthome_edu/course?method=findAll").then(function (resp) { that.tableData=resp.data },function (error) { console.log(error) })
4.引入elementui
全局引入
npm install element-ui -S
main.js文件中引入
import "element-ui/lib/theme-chalk/index.css";
import ElementUI from "element-ui";
Vue.use(ElementUI, { size: "medium" })