vue组件化编码(2.1): 使用vue-cli脚手架创建第一个项目

news/2024/7/10 1:51:09 标签: vue

vuecli_0">1. 创建第一个vue-cli项目

依次执行如下命令:

  1. npm install -g vue-cli
  2. vue init webpack vue_demo
  3. cd vue_demo
  4. npm install
  5. npm run dev
    最后访问:http://localhost:8080/ 可以看到运行结果。

2. 项目目录

执行完上述命令后,项目目录结构如下:
在这里插入图片描述
|–build:webpack 相关的配置文件夹(基本不需要修改)
|–config:webpack 相关的配置文件夹(基本不需要修改)
       |–index.js: 指定的后台服务的端口号和静态资源文件夹
|–node_modules 依赖包
|–src: 源码文件夹
       |–components:vue 组件及其相关资源文件夹
       |–App.vue: 应用根主组件
       |–main.js: 应用入口 js
|–static: 静态资源文件夹
|–.babelrc:babel 的配置文件
|–.eslintignore:eslint 检查忽略的配置
|–.eslintrc.js:eslint 检查的配置
|–.gitignore:git 版本管制忽略的配置
|–index.html: 主页面文件
|–package.json: 应用包配置文件,项目基本信息(项目创建后自动生成)
|–README.md: 应用描述说明的 readme 文件

3. Hello Word

  1. 创建HelloWord.vue组件
<template>
  <div>
    <p class="msg">{{msg}} </p>
  </div>
</template>

<script>
  export default { //配置对象(与vue一致)
    data () { //在组件中,data必须写成函数形式
      return {
        msg: 'Hello Word Vue Components!'
      }
    }
  }
</script>

<style>
  .msg {
    font-size: 30px;
    color: red;
  }
</style>

(1). 组件是什么?组件是一个局部的功能界面,包含了要实现这个功能界面所需的所有资源,即:html/css/js。
(2). 此处注意,data必须写成函数的形式,且必须有return。即data(){}。

  1. 创建App.vue(根组件)
<template>
  <div>
    <img class="img" src="./assets/logo.png"/>
    <br/>
    <!-- 3. 使用组件标签 -->
    <HelloWord/>
  </div>
</template>

<script>
  // 1.引入组件
  import HelloWord from './components/HelloWord.vue'

  export default {
    // 2.将组件映射成为标签
    components: {HelloWord}
  }
</script>

<style>
  .img {
    width: 200px;
    height: 200px;
  }
</style>

注意引入并使用组件的方式:
(1). 在<script>下通过import引入组件;
(2). 通过components将组件映射成为标签;
(3). 使用组件标签。

  1. 创建入口js(main.js)
/* vue的入口js文件 */
import Vue from 'vue' // 引入组件,简单的理解,一个vue文件就是一个vue的组件
import App from './App'

new Vue({
  el: '#app',
  /* 通过components:{ App }相当于components:{ App: App }配置,将组件映射成标签 */
  components: {App},
 /* 将该标签插入渲染到el所匹配的页面的块中 */
  template: '<App/>'
})

此处先使用components,将组件映射成为标签,然后使用template将该标签插入渲染到el所匹配的页面的块中。

  1. 主页面文件index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>vue_demo</title>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>
  1. 运行结果
    在这里插入图片描述
  2. 注意:运行时可能会报eslint检查错误,但是不会影响正常运行。错误如下:
    在这里插入图片描述
    如下三种解决方式:
    (1). build文件夹下–>webpack.base.conf.js—>找到config.dev.useEslint,然后ctrl+鼠标左键点入,将useEslint: true改为useEslint: false。然后重新执行npm run dev;
    (2). 在.eslintrc.js文件下配置忽略规则:
    在这里插入图片描述
    配置完成后,切记重新执行npm run dev。
    (3). 直接在.eslintignore加入所有的js和vue文件,即加入:*.js *.vue。但通常不建议这样做,重新执行npm run dev。

http://www.niftyadmin.cn/n/1179382.html

相关文章

zabbix1.8.8安装配置

前面的内容中&#xff0c;我们提到过nagios的配置&#xff0e;这里我们再次研究zabbix当我们配置好的我的环境后&#xff0e;我们开始安装&#xff0e;在安装的时候&#xff0e;请注意&#xff0c;一定要选择好数据的类型&#xff0c;不然会出现问题的&#xff0e; &#xff11…

Spring中在多线程中注入bean总是为null的问题解决

详见博文&#xff1a;https://blog.csdn.net/bebmwnz/article/details/90645472

java中几个特殊的类

1 内部类-----是在其他类中的类 1.1 内部类的定义 将类定义为 class xxxx{... ...}置于某个类的内部即可‘内部类编译时生成 xxxx$xxxx的class文件内部类不能够与外部类同名1.2 内部类的使用 在封装其类本省的类中使用该类&#xff0c;与普通类的使用方式相同在其他地方使用该类…

GIT学习笔记——1.4 起步 - 安装 Git

转自&#xff1a;http://git-scm.com/book/zh/ 安装 Git 是时候动手尝试下 Git 了&#xff0c;不过得先安装好它。有许多种安装方式&#xff0c;主要分为两种&#xff0c;一种是通过编译源代码来安装&#xff1b;另一种是使用为特定平台预编译好的安装包。 从源代码安装 若是条…

Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换

一、问题描述之前我们使用ViewPagerFragment区域内头部导航&#xff0c;在Android 3.0之后Google增加了新的ActionBar&#xff0c;可方便的实现屏幕Head部区域的 设计如返回键、标题、ICON、Logo、自定义View以及菜单等&#xff0c;并可实现Tab导航&#xff0c;下面我们就使用A…

Win10下搭建vue开发环境

https://www.jianshu.com/p/b001ea69b7f5

android系统action大全

String ADD_SHORTCUT_ACTION 动作&#xff1a;在系统中添加一个快捷方式。. “android.intent.action.ADD_SHORTCUT” String ALL_APPS_ACTION 动作&#xff1a;列举所有可用的应用。 输入&#xff1a;无。 “android.intent.action.ALL_APPS” String ALTERNATIVE_CATEGORY …

产生n bit所有可能的序列

void binary(int n) {if(n < 1)printf("%s\n",A); // Assume A is a global variableelse{A[n-1] 0;binary(n-1);A[n-1] 1;binary(n-1);} }n4时输出如下&#xff1a; 0000100001001100001010100110111000011001010111010011101101111111完整代码&#xff1a;…