Vue基础的一些常见方法

1.@vue/cli脚手架

目标: webpack自己配置环境很麻烦, 下载@vue/cli包,用vue命令创建脚手架项目

  • @vue/cli是Vue官方提供的一个全局模块包(得到vue命令), 此包用于创建脚手架项目

    脚手架是为了保证各施工过程顺利进行而搭设的工作平台

@vue/cli的好处

开箱即用 0配置webpack  babel支持  css.less支持 开发服务器支持

1.1_@vue/cli安装

目标:把@vue/cli模块包按到全局,电脑拥有vue命令,才能创建脚手架工程

全局安装命令

yarn global add @vue/cli
#or
npm install -g @vue/cli

注意:如果半天没动静(95%都是网速的问题),可以ctrlc

1.停止重新来

2.换一个网继续重来

查看vue脚手架版本

vue -V

总结:如果出现版本号就安装成功,否则失败

2.2_@vue/cli 创建项目启动服务

目标:使用vue命令,创建脚手架项目

===注意:项目名不能带大写字母,中文和特殊符号==

1.创建项目

#vue和create是命令,vuecli-demo是文件夹
vue create vuecli-demo

2.选择模块

==可以上下箭头选择,弄错了重新来==

3.进入脚手架项目下,启动内置的热更新本地服务器'

cd vuecil-demo

npm run serve
#或
yarn serve

只要在服务器端看见绿色的,就说明你成功了(底层node-webpack热更新服务)

2.3 @vue/cli 目录和代码分析

目标:讲解重点文件夹,文件夹的作用,以及文件里的代码意思

 vuecil-demo        # 项目目录
    ├── node_modules # 项目依赖的第三方包
    ├── public       # 静态文件目录
      ├── favicon.ico# 浏览器小图标
      └── index.html # 单页面的html文件(网页浏览的是它)
    ├── src          # 业务文件夹
      ├── assets     # 静态资源
        └── logo.png # vue的logo图片
      ├── components # 组件目录
        └── HelloWorld.vue # 欢迎页面vue代码文件 
      ├── App.vue    # 整个应用的根组件
      └── main.js    # 入口js文件
    ├── .gitignore   # git提交忽略配置
    ├── babel.config.js  # babel配置
    ├── package.json  # 依赖包列表
    ├── README.md    # 项目说明
	└── yarn.lock    # 项目包版本锁定和缓存地址

主要文件及含义

  • node_modules下都是下载的第三方包
  • public/index.html - 浏览器运行的网页
  • src/main.js - webpack打包的入口文件
  • src/App.vue-依赖包列表文件

2.4_@vue/cli 项目架构了解

目标:知道项目入口,以及代码执行顺序和引入关系

 

2.5_@vue/cli 自定义配置

目标:项目中没有webpack.config.js文件,因为@vue/cli用的vue.config.js

src并列处新建vue.config.js

//覆盖webpack的配置
module.exports = {
   devServer :{ //自定义服务配置
    open :true,//自动打开浏览器
   port:3000
}
}

2.6_eslint了解

目标:知道eslint的作用,和如何暂时关闭,它是一个==代码检查工具==

例子:先在main.js随便声明一个变量,但是不要使用

main.js

import Vue from 'vue'
import App from './App.vue'

Vue .config.productionTip = false

let a = 10; //声明变量但是从未使用过

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

观察发现,终端和页面都报错了

==记住以后见到这种的错误,证明你的代码不严谨==

方式1.手动解决掉错误,以后项目中会讲如何自动解决

方式2:暂时关闭eslint检查,在vue.config.js中配置后重启

module.exports = {
   // ... 其他配置
  lintOnSavue :false//关闭eslint检查
}

2.7_@vue/cli 单vue文件讲解

目标:单vue 文件好处,独立作用域,互不影响

Vue推荐采用,vue文件来开发项目

template里只能有一个根标签

vue文件-独立模块-作用域互不影响

style配合scoped属性,保证样式只针对当前template内标签生效

vue文件配合webpack,把他们打包起来插到index.html

<!-- template必须, 只能有一个根标签, 影响渲染到页面的标签结构 -->
<template>
  <div>欢迎使用vue</div>
</template>

<!-- js相关 -->
<script>
export default {
  name: 'App'
}
</script>

<!-- 当前组件的样式, 设置scoped, 可以保证样式只对当前页面有效 -->
<style scoped>
</style>

最终:Vue文件配合webpack,把他们打包起来插入到index.html,然后在浏览器运行

2.8_@vue/cli 欢迎界面清理

目标:我们开始写我们自己的代码,无需欢迎页面

  • src/App.vue默认有很多内容,可以全部删除留下框
  • assets 和 components 文件夹下的一切都删除掉(不要默认的欢迎页面)

==3. Vue指令==

3.0_vue基础-插值表达式

目的:在dom标签中,直接插入内容

又叫:声明渲染式/文本插入

语法:{{表达式}}

<template>
  <div>
    <h1>{{ msg }}</h1>
    <h2>{{ obj.name }}</h2>
    <h3>{{ obj.age > 18 ? '成年' : '未成年' }}</h3>
  </div>
</template>

<script>
export default {
  data() { // 格式固定, 定义vue数据之处
    return {  // key相当于变量名
      msg: "hello, vue",
      obj: {
        name: "小vue",
        age: 5
      }
    }
  }
}
</script>

<style>
</style>

总结:dom中插值表达式赋值,vue的变量必须在data里声明

3.1_vue基础-MVVM设计模式

目的:转变思维,用数据驱动视图改变,操作dom的事,vue源码内干了

设计模式:是一套被反复使用的,多数人只晓得的,经过分类编目,代码设计经验的总结

演示:在上一个代码基础上,在devtool工具改变M层的变量,观察V层(视图的自动同步)

v-model再观察V改变M的效果

总结:vue源代码采用MVVM设计模式思想,大大减少DOM操作,提高开发效率

3.2_vue指令-v-bind

目标:给标签属性设置vue变量的值

vue指令,实际上就是特殊的html标签属性,特点:v-开头

每个指令,都有独立的作用

  • 语法:v-bind:属性名="vue变量"
  • 简写:属性名="vue变量"
    <!-- vue指令-v-bind属性动态赋值 -->
    <a v-bind:href="url">我是a标签</a>
    <img :src="imgSrc">

    总结:把vue变量的值,赋予给dom'属性,影响标签显示效果

3.3_vue指令-v-on

目标:给标签绑定事件

语法

v-on:事件名="要执行的 == 少量代码=="

v-on:事件名="methods中的函数"

v-on:事件名="methods中的函数"(实参)

简写: @事件名="methods中的函数"

<!-- vue指令:   v-on事件绑定-->
<p>你要买商品的数量: {{count}}</p>
<button v-on:click="count = count + 1">增加1</button>
<button v-on:click="addFn">增加1个</button>
<button v-on:click="addCountFn(5)">一次加5件</button>

<button @click="subFn">减少</button>

<script>
    export default {
        // ...其他省略
        methods: {
            addFn(){ // this代表export default后面的组件对象(下属有data里return出来的属性)
                this.count++
            },
            addCountFn(num){
                this.count += num
            },
            subFn(){
                this.count--
            }
        }
    }
</script>

总结: 常用@事件名, 给dom标签绑定事件, 以及=右侧事件处理函数

3.4_vue指令-v-on事件对象

目标vue事件处理函数中拿到数据对象

语法:

1.无传参,通过形参直接接收

2.传参,通过$event代指事件对象传给事件处理函数

<template>
  <div>
    <a @click="one" href="http://www.baidu.com">阻止百度</a>
    <hr>
    <a @click="two(10, $event)" href="http://www.baidu.com">阻止去百度</a>
  </div>
</template>

<script>
export default {
  methods: {
    one(e){
      e.preventDefault()
    },
    two(num, e){
      e.preventDefault()
    }
  }
}
</script>

3.5_vue指令-v-on修饰符

目的:在事件后面:修饰符名-给事件带来更强大的功能

语法:

事件名.修饰符="methods里函数"

  • .stop - 阻止事件冒泡

  • .prevent - 阻止默认行为

  • .once - 程序运行期间, 只触发一次事件处理函数

<template>
  <div @click="fatherFn">
    <!-- vue对事件进行了修饰符设置, 在事件后面.修饰符名即可使用更多的功能 -->
    <button @click.stop="btn">.stop阻止事件冒泡</button>
    <a href="http://www.baidu.com" @click.prevent="btn">.prevent阻止默认行为</a>
    <button @click.once="btn">.once程序运行期间, 只触发一次事件处理函数</button>
  </div>
</template>

<script>
export default {
  methods: {
    fatherFn(){
      console.log("father被触发");
    },
    btn(){
      console.log(1);
    }
  }
}
</script>

总结: 修饰符给事件扩展额外功能

3.6_vue指令-v-on按键修饰符

目标: 给键盘事件, 添加修饰符, 增强能力

  • 语法:

    • @keyup.enter - 监测回车按键

    • @keyup.esc - 监测返回按键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值