百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

01 vue.js项目搭建 一学就会(vue搭建项目步骤)

toyiye 2024-07-04 09:09 15 浏览 0 评论

安装node环境

1)下载nodeJS地址:https://nodejs.org/en/

2)检查是否安装成功:如果输出相应版本号,说明node环境安装成功  

node -v
npm -v

3)为了提高效率,可以使用淘宝的镜像:http://npm.taobao.org/

npm install -g cnpm -registry=https://registry.npm.taobao.org

以后再用到npm的地方直接用cnpm来代替就好了。

检查是否安装成功:

cnpm -v
?
cnpm@6.1.1 (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm\lib\parse_argv.js)
npm@6.14.5 (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm\node_modules\npm\lib\npm.js)
node@12.13.0 (C:\development\nodejs\node.exe)
npminstall@3.27.0 (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\index.js)
prefix=C:\Users\Administrator\AppData\Roaming\npm
win32 x64 10.0.18362
registry=https://r.npm.taobao.org
?

安装webpack(全局) 

npm install webpack -g

 


搭建vue项目环境

1)全局安装vue-cli

npm install --global vue-cli 或 npm install vue-cli-g

2)进入项目目录,创建一个基于 webpack 模板的新项目

vue init webpack com01
项目名字 项目描述 作者

说明:

Vue build ==> 打包方式,回车即可;

Install vue-router ==> 是否要安装 vue-router,项目中肯定要使用到 所以Y 回车;

Use ESLint to lint your code ==> 是否需要 js 语法检测 目前我们不需要 所以 n 回车;

Set up unit tests ==> 是否安装 单元测试工具 目前我们不需要 所以 n 回车;

Setup e2e tests with Nightwatch ==> 是否需要 端到端测试工具 目前我们不需要 所以 n 回车;

3)进入项目:cd vue-demo,安装依赖

cd com01
cnpm i 或 npm install

安装成功后,项目文件夹中会多出一个目录: node_modules

4)npm run dev,启动项目

npm run dev 

项目启动成功:

> com01@1.0.0 dev D:\wwwroot\NODEJS\01COM
> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js
>
出现问题可能以下没有安装。
npm install --save axios element-ui vuex yc-js
npm install --save echarts
npm install sass sass-loader --save-dev
npm install less less-loader --save-dev
npm uninstall less-loader
npm install less-loader@4.1.0 --save
npm install stylus-loader css-loader style-loader --save-dev
npm install sass-loader@7.3.1 --save-dev

5)编译打包

npm run build

vue项目目录讲解

build:构建脚本目录

1)build.js ==> 生产环境构建脚本;

2)check-versions.js ==> 检查npm,node.js版本;

3)utils.js ==> 构建相关工具方法;

4)vue-loader.conf.js ==> 配置了css加载器以及编译css之后自动添加前缀;

5)webpack.base.conf.js ==> webpack基本配置;

6)webpack.dev.conf.js ==> webpack开发环境配置;

7)webpack.prod.conf.js ==> webpack生产环境配置;

config:项目配置

1)dev.env.js ==> 开发环境变量;

2)index.js ==> 项目配置文件;

3)prod.env.js ==> 生产环境变量;

node_modules:npm 加载的项目依赖模块

src:这里是我们要开发的目录,基本上要做的事情都在这个目录里。里面包含了几个目录及文件:

1)assets:资源目录,放置一些图片或者公共js、公共css。这里的资源会被webpack构建;

2)components:组件目录,我们写的组件就放在这个目录里面;

3)router:前端路由,我们需要配置的路由路径写在index.js里面;

4)App.vue:根组件;

5)main.js:入口js文件;

static:静态资源目录,如图片、字体等。不会被webpack构建

index.html:首页入口文件,可以添加一些 meta 信息等

package.json:npm包配置文件,定义了项目的npm脚本,依赖包等信息

README.md:项目的说明文档,markdown 格式

.xxxx文件:这些是一些配置文件,包括语法配置,git配置等

开始我们的第一个vue项目

在components目录下新建一个first目录,里面写我们的vue组件

1)开始我们的第一个组件:

a:在views目录下新建First.vue

b:在router目录下的index.js里面配置路由路径

import First from '@/components/views/First'
Vue.use(Router)
export default new Router({
routes:[
{path:'/',name:'HelloWorld',component:HelloWorld},
{path:'/first',name:'First',component:First}
]
})

c:template 写 html,script写 js,style写样式

<template>
    <div class='first-app'>{{msg}}</div>
</template>
<script>
export default{
    name:"First",
    data(){
        return{
            msg:"welcome to firstAPP"
        };
    }
}
</script>
<style>
</style>
?

d:输入ip: http://localhost:8080/#/first,查看页面效果

注意:

一个组件下只能有一个并列的 div,以下写法是错误:

<template>
    <div class='first-app'>{{msg}}</div>
    <div class='first-app'>{{msg}}</div>
</template>

数据要写在 return 里面,而不是像文档那样子写,以下写法错误:

export default{
    name:"First",
    data(){        
            msg:"welcome to firstAPP"//必须加return        
    }
}

父子组件

1)在components目录下新建sub文件夹,用于存放一下可以复用的子组件。比如新建一个Confirm.vue组件

2)创建子组件:confirm.vue    

3)在父组件中引入子组件

引入:import Confirm from '../sub/Confirm'
注册:在<script></script>标签内的 name代码块后面加上 components: {Confirm}
使用:在<template></template>内加上<confirm></confirm>

完整代码:

<template>
    <div class='first-app'>{{msg}}
    <confirm></confirm>
    </div>  
</template>
<script>
import Confirm from '../sub/Confirm'
export default{
    name:"First",
    components:{
        Confirm
    },
    data(){
        return{
            msg:'...'
        }
    }
}
</script>

4)父子组件通信

子组件:

<template>
    <div class='confirm-button'>
        <button @click="getButtonClick">{{text||'确定'}}</button>
    {{msg}}
    </div>  
</template>
<script>
export default{
    name:"confirm-button",
    props:["text"],  //父组件传给子组件的值
    data(){
        return{
            msg:true
        }
    },
    methods:{
        getButtonClick(){
            this.$emit('message',this.msg) //向父组件传递值
        }
    }
}
</script>

父组件:

<template>
    <div class='first-app'>{{msg}}
        <confirm text="注册" @message="getMessage"></confirm>
    </div>
    
</template>
<script>
import Confirm from '../sub/Confirm'
export default{
    name:"First",
    components:{
        Confirm
    },
    data(){
        return{
            msg:'...'
        }
    },
    methods:{
        getMessage(val){//子向父传的值 
            alert(val)
        }
    }
}
</script>

使用路由搭建单页应用

1)按照以上方法,新建一个Second.vue组件

2)路由跳转:

<router-link to="/second">去第二个页面</router-link>

路由跳转之后,注意观察路径变化:

localhost:8010/#/second

可以看到,在html中解析成了a标签

<a href="#/first" class> 去第一个页面</a>

如何用less写样式

1)安装less依赖:npm install less less-loader --save

 npm install less less-loader --save

安装成功之后,可在package.json中看到,多增加了2个模块:

"dependencies":{
    "less":"^3.0.2",
    "less-loader":"^4.1.0",
    "vue":"^2.5.2",
    "vue-router":"^3.0.1"
}

2)编写less

 <style lang="less" scoped>//样式中在当前组件中生效
 .first-app{
    font-size:30px;
    .link{
        a{color:read;}
    }
 }
 </style>

     

补充

1)解决vue不能自动打开浏览器的问题:当我们输入npm run dev,运行项目,命令行提示我们运行成功,但是浏览器也没有自动打开,只能自己手动输入。

解决:

1)打开config ==> index.js

2)module.exports配置中找到autoOpenBrowser,默认设置的是false

3)将autoOpenBrowser改为true

4)Ctrl+C,然后我们重启一下,就能自动打开浏览器了    

2)为了避免端口冲突,也可以修改port,打开目录同上

host:'localhost'
port:8010
autoOpenBrowser:true
errorOverLay:true
notifyOnErrors:true
poll:false

修改成功:

your application is running here:http://localhost:8080


相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码