Vue学习第四天

本文介绍了如何使用Vue CLI创建项目,包括全局安装、版本检查、项目初始化及运行。深入解析Vue项目文件结构,重点讨论组件化开发的核心概念,如模板、样式和JavaScript行为。详细阐述了组件的注册与使用步骤,并讲解了props的自定义属性特性,包括默认值、类型校验和必填属性。此外,还提到了在methods中直接书写单行表达式的方法。
摘要由CSDN通过智能技术生成

安装vue-cli

vue-cli是vue.js开发标准工具。他简化了程序员使用webpack配置项目的过程。

npm i -g @vue/cli(-g指的是全局安装)

 安装好之后可以通过vue -V,查看安装版本,出现类似下图则成功。

 

 安装好之后创建一个vue项目,首先在我们需要创建项目的文件目录下输入cmd,接着输入命令行

vue create demo-first

等创建完成之后我们需要运行项目,cd到对应文件目录下,运行npm run server。

vue项目中文件的构成

node_modules:下载的第三方库文件

public:存放两个文件,一个是网站小图标,开发的页面

src:源代码文件

一些配置文件

Vue项目运行流程

通过main.js把App.vue渲染到index.html指定的结构中。

①App.vue用在编写带渲染的模板结构

②index.html需要预留一个el待渲染的区域,因此区域有占位符的作用。

③main.js把App.vue渲染到index.html所预留的区域中。(可以通过导入vue文件并指定渲染的位置替换HTML文件中的区域。)

new Vue({
  render: h => h(App),
}).$mount('#app')


new Vue({
  el: "#app",
  render: h=>h(App)
})

render函数中,渲染的是哪个vue组件,那个这个组件就叫做’跟组件‘。

组件化开发

根据封装思想,把页面上可复用的UI结构封装为组件,从而方便项目的开发和维护。

vue组件由三部分构成

①template  --组件的模板结构(必需的)

②style --组件的样式

③组件的JavaScript行为

使用组件的三个步骤

①导入组件

②注册组件

③将组件当作标签使用

一丶局部子组件注册

在组件内部注册的子组件只能在该组件中使用,因此components注册的私有子组件。 


<template>
  <div>
    woshinide
    <hello></hello>
  </div>
</template>

<script>
import Hello from './components/HelloWorld.vue'

export default {
  data(){
    return {}
  },
  components: {
    'hello': Hello
  }
}
</script>

<style>
  
</style>

二丶全局注册

在main.js注册

import Vue from 'vue'

import App from './App.vue'

// 导入需要注册的组件

import Hello from './components/HelloWorld'

Vue.config.productionTip = false

// 第一个参数组件注册的名字,建议首字母大写  第二个参数需要注册的组件

Vue.component("Hello", Hello)

new Vue({

  render: h => h(App),

}).$mount('#app')

在methods的函数中,如果函数只有一行表达式,可以直接写在行内中,不用在methods中定义。

props自定义属性

自定义组件的自定义属性。在封装通用组件的时候,合理利用提高代码复用性。

1. 封装者自定义属性名,使用者自定义属性值。props:[ a, b, c]

2.

:value="9"  --使用属性绑定指令,后面是js表达式,因此 ‘9’ 是一个数值

value=“9”  --‘9’是一个普通的字符串

3. props是只读的,如果想要改变里面的内容,可以通过data中的数据实现。

4. 默认值default:如果使用者没有给props中自定义属性初始值,那么它的值就是undfined,所以我们需要给他一个默认值,不给他传值的时候它使用的就是默认值。数组无法满足我们的这种需求,我们需要把props改成一个对象。

props: {
  自定义属性A: {配置选项},
  自定义属性B: {配置选项},
  自定义属性C: {配置选项},
}
props:{
  init: {
    default:0
  }
}

 5. props类型type

props:{
  init: {
// 如果外界使用count组建的时候,没有初始值,则给他初始值0
    default:0,
// 进行值校验,如果给他初始值类型不对则报错  
    type:Number,
  }
}

 6. props的required属性,如果requierd值为true,使用改组件必须给改自定义属性一个初始值。

props:{
  init: {
// 如果外界使用count组建的时候,没有初始值,则给他初始值0
    default:0,
// 如果给他初始值类型不对则报错  ,进行值校验
 type:Number,
// 必填项校验(使用该组件的时候必须给改自定义属性初始值)
required:true
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值