js基础05之脚手架

脚手架

我们先在外面创建好空的项目文件夹,然后用Visual Studio Code软件打开文件。之后就是如下步骤了。

第一步:安装 。如果第一次还没有安装的时候,在使用脚手架之前需要安装脚手架。下次无需安装

image.png
npm install -g @vue/cli

第二步:创建一个项目,vue create my-project。在安装完脚手架之后,就可以创建项目了

image.png
C:\Users\THINK\Desktop\脚手架>vue create my-project
​
​
Vue CLI v3.11.0
? Please pick a preset: (Use arrow keys)
> default (babel, eslint)
 Manually select features</pre>

出现上面的结果后,按回车键耐心等待就可以了

第三步:使用命令cd my-project跳转到my-project目录下

image.png

第四步:使用npm run serve命令启动开发模式

image.png

当出现结果如下图的时候,说明就已经成功,接下来就可以写代码了

image.png

如何创建一个vue的项目

目录结构

image
名称 说明
node_modules 第三方包存储目录
public 静态资源,已被托管
src 源代码
.gitignore git 忽略文件,暂时不关心,我们还没有在项目中使用 git
babel.config.js 先不关心
package.json 包说明文件
README.md 项目说明文件
package-lock.json 包的版本锁定文件
名称 说明
assets 资源目录,存储静态资源,例如图片等
components 存储其它组件的目录
App.vue 根组件
main.js 入口文件

程序的启动

  • 找到 main.js 入口

  • 加载 Vue

  • 加载 App 组件

  • 创建 Vue 实例

  • 将 App 组件替换到入口节点

创建 Vue 实例

<template>
 <div id="app">
 ---------------------------
 这里面写的是我们的元素标签
 //--------------使用组件
 <filmsLi></filmsLi>

 </div>
</template>
<script>
//---------------导入组件vue ,from前面的参数是组件名称 ,from后面的参数是URL地址
import filmsLi from './components/filmsLi.vue' 
//我们在export default对象里面写我们的vue程序
export default {
 name:'app',
 data(){
 return {

 }
 },
 methods:{ 
 },
 //---------------注册组件
 components:{
 filmsLi //全等于 filmsLi:filmsLi
 }
}
</script>
<style scoped>
-------------
里面写的是我们的样式
</style></pre>

分析:

三大部分:

第一部分:template

  • 作用:组件的模板

  • 注意:只能有一个根节点(template 本身不算)

    <template> <div id="app"> --------------------------- 这里面写的是我们的元素标签 //--------------使用组件 <filmsLi></filmsLi> </div> </template>

第二部分:script

作用:组件的 JavaScript ,用来配置组件的选项(data、methods、watch。。。)

<script>
//---------------导入组件vue ,from前面的参数是组件名称 ,from后面的参数是URL地址
import filmsLi from './components/filmsLi.vue' 
//我们在export default对象里面写我们的vue程序
export default {
 name:'app',
 data(){
 return {

 }
 },
 methods:{ 
 },
 //---------------注册组件
 components:{
 filmsLi //全等于 filmsLi:filmsLi
 }
}
</script></pre>

第三部分:style

当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。

<style scoped>
-------------
里面写的是我们的样式
</style>

如果要使用less预编译的话,需要安装两个组件

npm i less –D

npm i less-loader -D

安装完成后,就可以使用less了

<style scoped lang="less">
-------------
里面写的是我们的样式
</style></pre>

单文件组件的定义和使用

创建单文件组件

  • 推荐把通用组件创建到 components 目录中

  • 把视图组件定义到 views 目录中

  • 单文件组件只是承载组件的容器而已,既不是全局也不是局部,如果要使用这个单文件组件,必须 注册

    • 全局注册使用,可以在任何组件中使用

      • 局部注册使用,只能在注册的组件中被使用

建立一个单文件的组件

<template>
 <div>
 foo 组件
 </div>
</template>
​
<script>
 export default {
 data() {},
 methods: {}
 // ...
 }
</script>
​
<style></style></pre>

全局注册使用

在 main.js 文件中

import Vue from 'vue'
import Com1 from './components/Com1.vue'
​

​
Vue.component('Com1', Com1)

// 接下来就可以在任何组件中使用 Com1 组件了</pre>

公共样式,我们一般创建在assets文件夹中,然后在 main.js 文件中导入,但不要写名称和from

import Vue from 'vue'
import App from './App.vue'
import './assets/css/resetCss.css' //导入css样式
Vue.config.productionTip = false
new Vue({
 render: h => h(App),
}).$mount('#app')

局部注册使用

<template>
 <div>
 <!-- 使用 Com2 组件 -->
 <Com2></Com2>
 </div>
</template>
<script>
 import Com2 from './components/Com2'
​
 export default {
 components: {
 Com2
 }
 }
</script></pre>

ECMAScript 6 Module

两种导出导入的方式

第一种方式:

导出:export default {}
导入: import {sun} from './assets/sum.js' //花括号里的名字为导出时函数的名字 </pre>

实例:

myAxios函数的导出:
import axios from 'axios'
export function myAxios(pageNum) {
 return axios({ //返回的结果是promises对象
 method: 'get',
 url: 'http://132.232.94.151:3000/api/film/getList',
 // data: {
 //     pageName
 // }
 params: {
 pageNum
 }
 })
}
​
导入:
import {myAxios} from './assets/axios' //花括号里面的内容要和函数名一直</pre>

第二种方式:

导出:export default {}
导入:import filmsLi from './components/filmsLi.vue' //自定义的名称
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容