vueDemo-1

vue打包

使用vue-cli搭建的项目中,是使用webpack进行打包,
在使用vue init 进行初始化项目之后,在根目录会生成webpack.config.js文件,来进行webpack打包的配置

vue项目结构

大概目录如下

--src
----components // 用于存放组件
----page //页面组件,由vue-router引入
----router //路由
----store // 数据流管理
main.js //入口文件
app.vue //主组件
--static //静态文件目录
.babelrc
index.html //静态文件入口

可以看到项目有三个入口文件:main.js app.vue index.html
项目网站打开之后会默认打开index.html,并运行main.js编译后的文件,如果项目无主组件,则可把 app.vue删除不用
以下忽略普通html的部分

main.js

import Vue from 'vue'//导入Vue,这个是必需的,在使用Vue之前,必须先导入
import router from './router/router'//导入 vue-router,并使用
Vue.use(VueRouter)

import store from './store/store'//导入 store 下的 store.vue 

Vue.config.debug = true  //开启debug模式
window.log = console.log
let data = {
  router,
  store
}
new Vue(data).$mount('#app')    //创建一个app实例,并且挂载到选择        符#app匹配的元素上   在根目录html里面   

主页面

vueDemo-1_第1张图片
Paste_Image.png

整个页面对应pages下的home.vue文件


vueDemo-1_第2张图片
Paste_Image.png

引入了/components/HomeHeader /components/List 组件
需要在script中进行引入声明:

vueDemo-1_第3张图片
Paste_Image.png

需要注意的是,在组件中data是必须为函数(即return返回),因为如果在不是函数的情况下,如果一页面中有多个同样的组件,那么各个组件会共用同一个数据对象,造成一个组件中数据改变,其他组件的数据也会改变详见 链接中组件是函数部分

list组件

位于/components/List
在home.vue中可以看到


vueDemo-1_第4张图片
Paste_Image.png

有两个属性

price
title

其对应LIst.vue中的script下生命的两个props:


vueDemo-1_第5张图片
Paste_Image.png

注意:props为有父组件向子组件传值(由home.vue向list.vue传值) 而不能由子组件向父组件传递数据参见props链接

主页面(home)路由跳转

vueDemo-1_第6张图片
Paste_Image.png

在index.html中可以看到有 节点
在'router-view'节点外用transition节点包裹可以为不同动态组件之间切换时添加过渡效果

router-view是现实路由内容的地方,即如果有多个“页面”需要切换,显示当前“页面“的地方。需要注意的是,使用vue-router控制路由则必须router-view作为容器。
他用来渲染装载由匹配到的视图组件

允许用户点击进行跳转导航,在生成的网页文件中,被渲染为a标签,其中to属性被渲染为a标签的href属性,用户点击后,根据不同的to属性内容,加载不同的动态组件在中进行渲染
可以看到在main.js中,配置了两个路由:


vueDemo-1_第7张图片
Paste_Image.png

其中第一个path为'/'标记为根目录,此时在首页面index.html加载的时候,会默认显示以'/'标记的组件,即在打开主页时,router-view会默认渲染Home.Vue组件

你可能感兴趣的:(vueDemo-1)