vue-cli脚手架搭建项目
单文件组件
- 简单来说就是把组件单独放到一个文件里
- 在vue里面,我们这个文件的后缀叫 .vue
- .vue有默认的三大部分:
template
script
style
- 如何生成三大部分? 快捷键:sca + 回车 完整版:scaffold + 回车//修改 现在已经更新为 <vue
Vue-cli ---脚手架工具
基本概念及作用
- 把
.vue
翻译成浏览器可以识别的内容 - 自动刷新浏览器
- 自动压缩代码
- 自动的把js翻译为低版本的js(es6/7 翻译成es5)
- 作为代理服务器(在本地开启一个小型的web服务器)
- 方便帮我们管理我们导入的第三方包
- ....
vue-cli 安装
安装淘宝镜像文件:npm install -g cnpm --registry=https://registry.npm.taobao.org
安装脚手架第一种方式:npm install -g @vue/cli
, 在任意的路径都可以,这是全局安装,安装成功一次即可
安装脚手架第二种方式:vue ui
这是通过ui界面的方式来安装
注意点
-
- 第一次安装,安装成功了
-
- 已经安装过,重新安装
-
- 类似于这样的一堆
err!
安装失败了 - 解决方案:
- 更换网络环境:有线,换无线,无线换4G
- 更换安装的工具
cnpm
:cnpm install -g @vue/cli
yarn
:yarn global add @vue/cli
- 清除npm缓存之后,重新安装
npm cache clean -f
- 重新执行安装的命令
- 类似于这样的一堆
- 命令查看是否成功
vue --version
总结:脚手架的安装就一行命令
1.安装:npm install -g @vue/cli
2.安装完成查看版本 : vue --version
Vue-cli项目创建
正常的流程
vue-cli 安装完成之后,就可以开始创建项目了,小伙伴们快来体验吧!!
注意事项
- 创建之后会多一个项目文件夹,路径不要乱选
- 项目名不要有中文,不要有大写字母,尽可能有意义
vue create 项目名
例如:vue create demo
- 弹出的对话框先选择默认的选项
- 稍等一会,等进度条走完 提示如下画面说明成功了
-
进入项目文件夹
-
cd 项目名
直接根据提示即可cd demo
-
-
运行项目
npm run serve
-
稍等片刻 ,出现如下效果说明成功了
注意
- 项目搭建完成先复制一份,目的是为了下个项目直接使用,而不用再重新安装脚手架
报错的原因
-
创建的命令输入错误
create
输入成了creat
-
- 网络问题,有线换无线,无线换4G
- 终端的权限问题;新建管理员模式的终端
- 当前这个文件夹,这个文件被其他软件占用:关闭所有可能影响的软件(重启)
- npm包管理工具的问题:
- 用yarn来安装
- 执行
npm cache clean -f
在重新创建项目
-
创建项目是,又到了第三方模块,文件太多了git认为没有必要管,提示你一下
vue-cli创建项目是,已经设置了git忽略文件 就在
.gitignore
中
实在无法创建项目的解决方案(重要)
-
vue-cli创建项目的本质是:
- 创建文件夹
- 下载第三方模块
- 创建项目的基本结构
- 设置各个文件之间的关系
- 创建git仓库
-
找一个可以创建项目的人,创建一个项目
-
删除
node_modules
-
发给你
-
你使用
npm i
安装项目中用到的第三方模块 -
npm run serve
-
总结:脚手架创建项目流程
vue create demo
cd demo
npm run serve
vue-cli项目初体验
Vue-cli项目结构介绍
- 脚手架创建完项目后,会自动把项目加入git托管功能
详细解释
-
vue-cli 项目文件夹名称
-
node_modules 第三方包文件
-
public 传统意义的首页和图标
- favicon.ico 图标
- index.html 脚手架自动生成的,我们无需理会,但是后面cdn加速的时候需要修改里面配置
-
src assets和components ---代码都写在src里面
-
.gitignore 告诉git哪些文件夹需要忽略,让git忽略某些文件和文件夹 如:node_modules
-
babel.config.js js的编译设置,脚手架可以把高版本js转成低版本js就是在这个文件夹
-
package-lock.json 项目的配置信息
-
package.json 记录第三方模块的一些信息;注意:在
serve
里面加上--open
就会默认打开网页
Vue-cli项目代码编出初体验
1.来到项目文件目录,注意是要进到项目里面,打开小黑框
在小黑框命令行输入:npm run serve
输入命令之后,它就会将项目打包,而且有一个小型的 web服务器,之后你就可以访问了,如下:
自己电脑上访问用 loacal,别人访问用 network,访问结果如下:
2.main.js和 App.vue
main.js 和 主组件 代码分析:
1.main.js 首先进入main.js 查看内容:
import Vue from 'vue' import App from './App.vue' //导入子组件index.vue import index from './components/index.vue' // 是否打印提示信息,可以删除 // 删除的话,默认值为true Vue.config.productionTip = false // new Vue({ // render: h => h(App), // }).$mount('#app') // 上面注释代码 相当于如下: new Vue({ el: '#app', // 把App组件渲染出来,页面一启动就渲染的页面,这就是为什么默认渲染的App.vue render: h => h(App), })
2.主组件 App.vue,进入清空里面代码;输入快捷键 sca
生成结构代码( <script><style>)
-
组件的逻辑直接写在
xx.vue
,子组件写在components
文件夹内- index.vue 新建子组件,在子组件中输入
sca
生成结构代码
- index.vue 新建子组件,在子组件中输入
-
目前写在App.vue 这个顶级组件里
-
静态资源放到
assets
文件夹下面,直接使用对应路径即可引入 -
css
assets
也是这个文件夹,如何引入? 这是2种导入css样式的方式- 直接在App.vue 文件
style标签中引入
/* 使用css支持的语法导入 */ /* @import url('./assets/base.css'); */
- 在
main.js
文件中引入
// 导入 样式 import './assets/base.css' //这是vue的写法
- 直接在App.vue 文件
Vue-cli src代码结构
- main.js中
- 创建了最外层的Vue实例
- 把App.vue这个组件,当做Vue实例内部的最顶级组件并渲染出来
- 和public/index.html 中的那个id为
app
的div关联起来
- App.vue 最顶级的那个组件,仅次于
Vue实例
assets
静态资源文件夹,网站的所有静态文件都放到这个文件夹components
组件文件夹,除了App.vue
之外的组件,都写到这个文件夹中即可
注册全局组件
快捷键 sca
+回车 或者 <>
+ 回车
使用组件的注意事项:
1.里面 必须用 跟标签包裹
<template>
<div>
<h1>我是组件1</h1> </div> </template>
2.代码写到 exprot default
里面
<script>
export default {
};
</script>
-
详细过程:
第一步:在components文件夹下,新建组件
-
sca
-
创建子组件
代码如下:
<template> <div> <h3>我是hello vue</h3> <button @click="tips">点我呀</button> </div> </template> <script> export default { methods:{ tips(){ alert('我被点了'); } } } </script> <style> </style>
第二步:
-
来到 main.js
-
使用
import 名字 from '组件路径'
引入 -
调用
Vue.componment('组件id',组件名字)
来注册 (Vue的V是大写) -
在需要用到这个组件地方,写
组件id的标签
就可以了代码如下:
// 进入main.js 文件 import Vue from 'vue' import App from './App.vue' // 导入子组件 hellovue import hellovue from './components/hellovue.vue' //注册组件 Vue.component('hello',hellovue); // 是否打印提示信息,可以删除 // 删除的话,默认值为true Vue.config.productionTip = false // new Vue({ // render: h => h(App), // }).$mount('#app') // 上面注释代码 相当于如下: new Vue({ el: '#app', // 把App组件渲染出来 render: h => h(App), })
-
注册局部组件
-
顾名思义:在哪注册,就在哪可以使用
- 用法:
- 在需要用的地方,引包
import 名字 from '组件路径'
引入` - 在
export default
里写一个属性:componments
传入一个对象,对象里写 这个组件名 - 组件名叫什么,那么在html 里就可以写这个名字的标签
- 在需要用的地方,引包
代码如下:
<template>
<div>
<h1>这是我创建的第一个cli项目</h1> <hello></hello> <localvue></localvue> <localvue></localvue> </div> </template> <script> // 注册局部组件,在哪注册,在哪使用 在App.vue里注册的只能在App.vue里面使用 import localvue from './components/localvue.vue' export default { components:{ localvue } } </script> <style> </style>
组件的name
属性
-
直接在组件的内部写
name:值
即可 -
不能用中文
-
写了之后,chrome的vue插件中可以看到这个名字,更加利于检索,利于编码
代码如下:
<script> export default { name:'hellovue' } </script>
Vue-cli项目的路由整合
准备工作
- 创建项目
vue create 项目名
- 进入项目文件夹
cd 项目名
- 运行项目
npm run serve
- 稍等片刻,通过提示的地址 在浏览器中 打开
- 删除多余的组件
components/
内部的文件 - 删除
app.vue
中的内容
整合路由
- 下载路由
npm i vue-router
- 导包
import VueRouter from 'vue-router'
- 用包
- 创建路由规则
- 创建一个组件
xxx.vue
- routes=[ {path:"/xx",component:组件} ]
- 创建一个组件
- 创建路由对象
- router
- 设置给Vue实例
- new Vue({ router })
- 创建路由规则
代码如下:
// 导入路由
import VueRouter from 'vue-router';//注意大小写 // use一下 Vue.use(VueRouter); // 1.导入组件 import index from "./components/03.index.vue" // 2.准备规则 const routes = [ { path: "/index", component: index } ] // 3.创建路由对象 const router = new VueRouter({ routes }) new Vue({ render: h => h(App), //4.挂载路由 router }).$mount('#app')
编码位置
- 导入 注册路由
main.js
- routerlink router-view
app.vue
- 添加组件
components/
- 静态资源
assets
注意
-
如果页面不够美观 可以找到对应的组件调整结构
-
如果路由对应的组件不够美观,找到对应的组件调整结构
总结
- 单文件组件的组成
- 结构
- 逻辑
- 样式
- vue-cli(脚手架)
- 把很多开发中需要用到的功能整合到了一起
- 让vue的开发人员直接专注于逻辑代码即可
- webpack配置出来的
- 创建项目
vue created 项目名
- 不能中文,不能大写
- 项目创建不好用别人创建好的,自己
npm i
- 运行项目
- 小黑窗进入项目文件夹
npm run serve
- vue-cli创建的项目
- 下包怎么下
npm i 模块名
- 如何导包
import 名字 from '模块名'
- 下包怎么下
- 整合路由
- 组件新建一个文件
- 路由的设置
main.js
- App.vue router-link router-view
- 项目运行
-
npm run serve
-
根据小黑窗中提示的路径 ,在浏览器中打开即可
-
以上就是我初次使用vue-cli的体验,小伙伴们一起来体验吧!!