vue 熟悉项目结构 创建第一个自己的组件

vue开发环境搭建

* 项目入口文件 ./src/main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from ‘vue‘
import App from ‘./App‘
import router from ‘./router‘

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: ‘#app‘,
  router,
  components: { App },
  template: ‘<App/>‘
})

入口文件不需要改动  

* 项目路由文件 ./src/router/index.js

指定url对应哪些组件

import Vue from ‘vue‘
import Router from ‘vue-router‘
import HelloWorld from ‘@/components/HelloWorld‘
// add router
import cnblog from ‘@/components/cnblog‘
import person from ‘@/components/person‘

Vue.use(Router)

// configure router
export default new Router({
  routes: [
    {
      path: ‘/‘,
      name: ‘HelloWorld‘,
      component: HelloWorld
    },
    {
      path: ‘/cnblog‘,
      name: ‘cnblog‘,
      component: cnblog
    },
    {
      path: ‘/person‘,
      name: ‘person‘,
      component: person
    }
  ]
})

* 项目入口模板./src/App.vue

<template>
  <div id="app">
    <router-view/>
  </div>
</template>

<script>
export default {
  name: ‘App‘
}
</script>

<style>
#app {
  font-family: ‘Avenir‘, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

  

路由的模板页面都在 <router-view />中,这个文件也不需要改动

* 创建一个组件模板文件 ./src/components/cnblog.vue

组件都放在./src/components/路径下

注意

** 整个模板文件只能是一个根dom节点 <div class="wrapper"></div>

** 文件结尾需要一个空行

** <style scoped> scoped表示只在这一个组件中有效

<template>
<div class="wrapper">
    <div class="binding">
        <p class="msg">{{msg}}</p>
        <input type="text" v-model="msg" />
    </div>
    <button v-on:click="say(‘Hi‘)">Greeting</button>
</div>
</template>

<script>
var exampleData = {
  msg: ‘This is a demo from cnblogs‘
}

export default {
  name: ‘cnblog‘,
  data () {
    return {
      msg: exampleData.msg
    }
  },
  methods: {
    say: function (msg) {
      alert(msg)
    }
  }
}
</script>

<style scoped>
p.msg {
  line-height: 30px;
  height: 30px;
  padding: 10px 0;
}
input {
  width: 200px;
  padding: 2px;
}
.binding {
    margin-bottom: 20px;
}
</style>

  Run:

npm run dev

  

* 再创建一个组件person

先添加路由 ./router/index.js

import person from ‘@/components/person‘
Vue.use(Router)

export default new Router({
  routes: [
// ...
    {
      path: ‘/person‘,
      name: ‘person‘,
      component: person
    }
  ]
})

创建模板./components/person.vue

<template>
<div class="wrapper">
   <fieldset>
                <legend>
                    Create New Person
                </legend>
                <div class="form-group">
                    <label>Name:</label>
                    <input type="text" v-model="newPerson.name"/>
                </div>
                <div class="form-group">
                    <label>Age:</label>
                    <input type="text" v-model="newPerson.age"/>
                </div>
                <div class="form-group">
                    <label>gender:</label>
                    <select v-model="newPerson.gender">
                    <option value="Male">Male</option>
                    <option value="Female">Female</option>
                </select>
                </div>
                <div class="form-group">
                    <label></label>
                    <button @click="createPerson">Create</button>
                </div>
        </fieldset>
        <table>
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Age</th>
                    <th>gender</th>
                    <th>Delete</th>
                </tr>
            </thead>
            <!-- 循环必须指定key -->
            <tbody>
                <tr v-for="(person) in people" :key="person.id">
                    <td>{{ person.name }}</td>
                    <td>{{ person.age }}</td>
                    <td>{{ person.gender }}</td>
                    <td :class="‘text-center‘">
                       <!-- <button @click="deletePerson($index)">Delete</button> -->
                       <button @click="deletePerson(person.id)">Delete</button>
                    </td>
                </tr>
            </tbody>
        </table>
</div>

</template>
<style scoped>
p {
  padding: 10px 0;
}
table {
    margin: 20px auto;
}
</style>
<script>
var data = {
  people: [
    {
      id: 1,
      name: "Jack",
      age: 30,
      gender: "Male"
    },
    {
      id: 2,
      name: "Bill",
      age: 26,
      gender: "Male"
    },
    {
      id: 3,
      name: "Tracy",
      age: 22,
      gender: "Female"
    },
    {
      id: 4,
      name: "Chris",
      age: 36,
      gender: "Male"
    }
  ]
};
export default {
  name: "person",
  data() {
    return {
      newPerson: {
        name: "",
        age: 0,
        gender: "Male"
      },
      people: data.people
    };
  },
  methods: {
    createPerson: function () {
      this.people.push(this.newPerson);
      // 添加完newPerson对象后,重置newPerson对象
      this.newPerson = { name: "", age: 0, gender: "Male" };
    },
    deletePerson: function (id) {
      // find index
      var index, person;
      person = this.people.find( function (person, idx) {
        var matchID = person.id === id;
        if (matchID) {
          index = idx
        }
        return matchID
      });
      // 删一个数组元素
      this.people.splice(index, 1);
    }
  }
};
</script>

  

一些分享的教程

Angular5.X+Ionic3.X仿京东商城项目实战视频教程免费下载地址:http://pan.baidu.com/s/1skETGa5

Angular5完整版地址:https://www.itying.com/goods-232.html

Ionic3仿京东商城项目实战完整版地址:https://www.itying.com/goods-460.html

Angular5 Koa2无人点餐无人收银项目实战视频教程免费下载地址:https://pan.baidu.com/s/1Hn-iHvDaRxqjmOZCEIrZZQ

2018年6月最新Mpvue视频教程免费下载地址:
https://www.itying.com/goods-897.html

最新Node.js基础视频教程完整版及Koa2入门实战视频教程免费下载地址:https://www.itying.com/goods-240.html

2018年最新Vue入门实战视频教程免费下载地址:
https://www.itying.com/goods-864.html

原文地址:https://www.cnblogs.com/mingzhanghui/p/9462082.html

时间: 2024-10-06 15:01:37

vue 熟悉项目结构 创建第一个自己的组件的相关文章

VUE:项目的创建、编写、打包及规范检查

VUE:项目的创建.编写及打包 项目的创建 使用 vue-cli 创建模板项目(官方提供的脚手架工具) https://github.com/vuejs/vue-cli npm install -g vue-cli vue init webpack vue_demo cd vue_demo npm install npm run dev 访问:http://localhost:8080/ 第一个命令需要有npm.可以使用node -v查看是否已经安装,如没有可用下面的传送门 npm是什么及其安装

Vue开发系列二 熟悉项目结构

初始项目结构如上所示.src:  写代码地方,我们大部分的操作都在此 static :资源目录 static目录下还可以放一些第三方的js库,通用的css等,这样每次打包的时候节省打包时间 原文地址:https://www.cnblogs.com/menchao/p/8425749.html

vue+webpack项目结构介绍

对vue已经有了一定的了解,所以希望可以在github上找到一些项目实践,但是无奈不知道vue的整体架构是如何的,往往不知道该如何着手看,所以这里在网上找了相关的文章作为参考,对结构有一个大致的了解.参考文章如下: 用vue+webpack搭建的前端项目结构 vue+webpack项目实践 这里插一句话,搜索谷歌做的确实好,支持原创,搜索精准,不知道比度娘高到哪里去~

微信小程序开发之入门篇(熟悉项目结构)

微信小程序创建之后会生成一个项目模板,如下图所示(基本如此,但并不局限于此) 现在分别来说明一下每个文件及目录的意思 app.js 程序的入口文件,必须存在. app.js是小程序的脚本代码.我们可以在这个文件中监听并处理小程序的生命周期函数.声明全局变量.调用框架提供的丰富的 API,如本例的同步存储及同步读取本地数据. app.json app.json 是对整个小程序的全局配置.我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题.注意该文件

IDEA项目结构及创建包和类

IDEA项目结构 创建包和类 1. 展开创建的工程,在源代码目录 src 上,鼠标右键,选择 new->package ,键入包名 com.itheima.demo ,点击确定. 2. 在创建好的包上,鼠标右键,选择 new->class 创建类,键入类名. 3. 在代码编辑区,键入主方法,并输出 HelloWorld 4. 运行程序,在代码编辑区鼠标右键,选择 Run HelloWorld 即可,或在菜单中选择 Run->Run HelloWorld . 原文地址:https://ww

IDAE的项目结构

IDAE的项目结构 创建包和类 1. 展开创建的工程,在源代码目录 src 上,鼠标右键,选择 new->package ,键入包名 com.itheima.demo ,点击确定. 2. 在创建好的包上,鼠标右键,选择 new->class 创建类,键入类名. 3. 在代码编辑区,键入主方法,并输出 HelloWorld . 4. 运行程序,在代码编辑区鼠标右键,选择 Run HelloWorld 即可,或在菜单中选择 Run->Run HelloWorld 原文地址:https://w

ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器

ThinkPHP的目录结构 回顾上一篇的安装目录: 目录对应关系 F:\\PHP├─index.php       入口文件├─README.md       README文件├─Application     应用目录├─Public          资源文件目录└─ThinkPHP        框架目录 thinkphp 的目录结构 ThinkPHP 的目录结构非常清晰和容易部署.大致的目录结构如下,以项目为基础进行部署. ┎━ThinkPHP 框架系统目录┃ ┝ ThinkPHP.ph

maven系列之二maven项目的创建和maven项目的结构

maven系列之一简单介绍了maven的基本信息,安装和配置,大家对maven有一个大概的了解,但是在maven项目开发中远远不够,为了进一步了解maven,现在我们介绍maven项目的创建和maven项目的结构. 第一部分:maven项目的创建 maven项目创建方式一:用命令 开始键+r=,确定,检测maven的版本 输入mvn -v   输入mvn archetype:generate  ,执行这个命令有点久,要有耐心,他会检测setting.xml,不符合条件就会报错.同时也会根据set

python+Django创建第一个项目

1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检查是否安装好 1.4 查看Django的管理工具---django-admin.py命令 2. 创建第一个项目 HelloWorld: 项目的容器. manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互. HelloWorld/__init__.py: 一个空