1、js,jQuery编程范式:命令式编程

 vue编程范式:声明式编程

 v-for   遍历数组内容

 v-on: click   监听点击事件,语法糖 @click

  • el:

  类型:string | HTMLElement

  作用:决定之后 Vue 实例会管理哪一个 DOM。

  • data:

  类型:Object | Function(组件当中data必须是一个函数)

  作用:Vue实例对应的数据对象

  • methods

  类型:{ [ key : string ]:Function }

  作用:定义属于Vue的一些方法,可以在其他地方调用,也可以在指令中使用。

   <div id="app">
      <h2>当前数量:{{ val }}</h2>
      <ul>
        <li v-for="val in project">{{ val }}</li>
      </ul>
      <button v-on:click="add">+</button>
      <button @click="down">-</button>
    </div>
    <script>
      const app = new Vue({
        el: "div",  // 用于挂载要管理的元素
        data: {     // 定义数据
          val: 0,
          project: ["数学", "语文", "英语"]
        },
        methods: {  //定义方法
          add: function() {
            this.val++;
            console.log("add被点击了");
          },
          down: function() {
            this.val--;
            console.log("down被点击了");
          }
        }
      });
    </script>

2、vue中的MVVM:

3、开发中什么时候称为函数,什么时候称为方法?

  函数:function

   直接在script 标签中定义的 function fn(){}

  方法:method

   在类里面的东西一般叫方法,方法一般是和实例对象挂钩的

4、Vue 的指令(主要作用:将值插入到模板内容中)

 1.mustache语法(双大括号{{ }})

<h2>{{message}}</h2>
<h2>{{message}},自定义内容</h2>
<!--mustache语法中,不仅仅可以直接写变量,也可以写简单的表达式-->
<h2>{{firstName+ lastName}}</h2>  // 连接两个变量
<h2>{{firstName+ ' ' + lastName}}</h2> // 连接两个变量,中间加空格
<h2>{{firstName}} {{lastName}}</h2> //连接两个变量,中间含空格
<h2>{{num * 2}}</h2>  //计算变量
<h2>{{message}}</h2>

 2. v-once:阻止界面内容随意更改

  该指令后面不需要跟任何表达式

  该指令表示元素和组件只渲染一次,不会随数据的改变而改变。

<h2>{{mes}}</div>
<h2 v-once>{{mes}}</div>  //consolle控制台中更改mes的值,加了v-once中的内容不会被更改  

 3. v-html:解决从服务器请求的数据本身是 HTML 代码的问题

  该指令后面往往会跟上一个 string 类型

  会将 string 的html 解析出来并进行渲染

1.如果直接通过{{}}来输出,会将HTML代码一起输入
<h2>{{url}}</h2> // <a href='http://www.baidu.com'>百度链接</a>

2.如果想按照HTML格式进行解析,并且显示对应内容 则在标签中加入 v-html 指令
<h2 v-html='url'>{{url}}</h2>  // 百度链接

url: "<a href='http://www.baidu.com'>百度链接</a>",

 4.v-text:和{{ }}(Mustache)相似,都是用于将数据显示在界面中

  v-text通常情况下,接受一个string类型,不灵活,会覆盖原有的值,不建议使用

<h2>{{message}},自定义值...</h2>  // 新插入数值,自定义值...
<h2  v-text='message'>自定义值...</h2>  // 新插入数值(会覆盖原有的值)
message:'新插入数值'

 5. v-pre:用于显示原本的 Mustache 语法(类似于html标签pre)

<h2>{{message}}</h2>  // andy
<h2 v-pre>{{message}}</h2>  //{{message}}
message:'andy'

 6.v-cloak:浏览器会直接显示出未编译的Mustache标签,(类似于斗篷)。

  在data 数据没解析之前显示出来,data数据解析之后删除掉

<style>
    div{
        display:none;
    }
</style>
<div id="app">{{message}}</div>  //如果函数加载慢,页面中直接显示{{message}},用户体验不太好,可以使用v-cloak属性设置,没加载出来时显示v-cloak属性,函数加载出来后删除v-cloak属性。
<script>
    const  app = new Vue({
        el:'#app',
        data:{
            message:'自定义...'
        }
    });
</script>

5、V-bind 介绍(动态绑定属性)

  • 动态绑定 a 元素的 href 属性
  • 动态绑定 img 元素的 src 属性

 1. v-bind 指令

  作用:动态绑定属性

  缩写: :

  预期: any(with argument)  | Object(without  argument)

  参数:attrOrProP(optional)

<a  v-bind:href='aHref'>百度</a>
语法糖写法:
<img  :src='imgURL' />

aHref:'http://www.baidu.com',
imgURL:'../img/03.png'

 2. v-bind 动态绑定class值(两种方式:对象语法 和 数组语法)

 方式一:(对象语法:class后面跟一个对象)

 语法:

用法一:直接通过{}绑定一个类
<h2  :class='{active:isActive}'>Hello World</h2>

用法二:也可以通过判断,传入多个值
<h2  :class='{'active':isActive,'line':isLine}'>Hello World</h2>

用法三:和普通的类同时存在,并不冲突
注:如果isActive 和 isLine都为true,那么会有title/active/line三个类
<h2  class='title'  :class='{active:isActive,'line':isLine}'>Hello World</h2>

用法四:如果过于复杂,可以放在一个methods或者computed(计算属性)中
method方法:
<h2  class='title'  :class='{active:"getClass()"}'>Hello World</h2>
getClass:function(){
  return {active:this.isActive,line:this.isLine};
}

总结:
<h2  class='tit'  :class='{key1:value1,key2:value2}'>{{message}}</h2>  //固定的class 写法:class='',有可能删除的class写法:v-bind:class=''
key:类名
value:boolean值    true,显示  false 不显示

点击按钮实现给字体设置或取消颜色

<syle>
.red {
    color: red;
 }
</style>

<h2 id='app' v-bind:class="{red:flag}">当前数量:{{ val }}</h2>
<button v-on:click="color">设置h2字体颜色</button>

<script>
const app = new Vue({
   el: "#app",
   data: {    // 定义数据     flag: false
   },
   methods:{
     color() {
        this.flag = !this.flag;
     }
   }
});
</script>

 方式二:数组语法:class后面跟的是数组

用法一:直接通过{}绑定一个类
<h2  :class='["active"]'>Hello World</h2>

用法二:也可以传入多个值
<h2  :class='["active","line"]'>Hello World</h2>

用法三:和普通的类同时存在,并不冲突
注:会有title/active/line三个类
<h2  class='title'  :class='["active","line"]'>Hello World</h2>

用法四:如果过于复杂,可以放在一个methods或者computed(计算属性)中
method方法:
<h2  class='title'  :class='{active:"getClass()"}'>Hello World</h2>
getClass:function(){
  return [this.active,this.line];
}

总结:
   []中属性加引号(""):代表是字符串  // class类名
   []中属性不加 引号(""):代表是变量  

初始 vue的更多相关文章

  1. 初始Vue、Vue模板语法、数据绑定(2022/7/3)

    文章目录 1.Vue简介 1.1.Vue的安装使用 1.2.实际的运用案例 1.3.vue开发工具的使用(这个需要在浏览器中安装) 2.初始Vue 2.1 .基础知识 2.1 .代码实例 2.2 .页 ...

  2. 初始Vue

    渐进式 JavaScript 框架 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围,最终可以独立以框架方式完成整个web前端项目 走进Vue what -- 什么是Vue 可以独立完成前后 ...

  3. 一天带你入门到放弃vue.js(一)

    写在前面的话! 每个新的框架入手都会进行一些列的扯犊子!这里不多说那么多!简简单单说一下vue吧! Vue.js是目前三大框架(angular,vue,react)之一,是渐进式js框架,据说是摒弃了 ...

  4. Vue小案例 之 商品管理------创建页面与部分数据

    logo的路径: 页面的初始布局: 初始的HTML: <div id="container"> <!--logo title--> <div clas ...

  5. vue.js实战(文摘)

    ---------------第1篇 基础篇 第1章 初始vue.js 第2章 数据绑定和第一个vue应用 第3章 计算属性 第4章 v-bind及class与style绑定 第5章 内置命令 第6章 ...

  6. 前端框架-Vue 入门

    一.介绍 1.Vue.js 是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架. Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合. ...

  7. 一个后端开发的 Vue 笔记【入门级】

    一 前言 最近找了些教程,顺带着趴在官网上,看了看 Vue 的一些内容,入门的一些概念,以及基础语法,还有一些常用的操作,瞄了一眼,通篇文字+贴了部分代码 9000 多字,入门语法什么的还是很好理解的 ...

  8. vue-cli3.0 搭建项目

    1.首先我们先在安装好node   node用于npm安装[自行百度] 2.全局安装vue 通过npm命令安装vue.js 在用vue.js在用于构建大型的应用时推荐使用npm安装,npm能很好的和w ...

  9. 封装一个基础的vue-router

    前言主要知识点: 路由原理 Hash与History 实现路由 一.一个vue路由的工作原理前端路由与后端路由的区别: 后端路由:输入url>请求发送到服务器>服务器解析请求的路径> ...

随机推荐

  1. Linux知识-不断更新

    找到使用cpu最高的进程之使用cpu最高的线程的16进制号 shell命令行: ps -eo %cpu,pid | sort -n -k1 -r |head -n 1|awk '{print$2}'| ...

  2. day04 列表增删改查、元祖以及range

    01 课前小甜点 千万不要随意做决定 只要你做了决定,你要坚持下去. 02 昨日内容回顾 int <---> bool : 非0 True 0 False True 1 False 0 i ...

  3. 手写Mybatis,还需要后面调整下

    参考博客 https://blog.csdn.net/Kurozaki_Kun/article/details/81482212 个人理解 读取Mybatis配置文件 数据库连接信息 读取Mapper ...

  4. 设备树中#address-cells和#size-cells作用

    device tree source Example1 / { #address-cells = <0x1>; // 在 root node 下使用 1 個 u32 來代表 address ...

  5. python基础:3.高级运算符

    1.异或运算 十进制的异或运算,先转成二进制进行异或,按位进行比较,对应位置相同则为0,对应位置不同则为1,,再从异或结果转成十进制. python中: 1 ^ 1 = 0 1 ^ 2 = 3 1 ^ ...

  6. Autoit脚本调用pscp上传小程序

    linux上传文件用pscp上传相对麻烦,如下写了个脚本方便上传 代码如下: $fileURL=@ScriptDir & "pscp.ini" If (FileExists ...

  7. 【leetcode】44. Wildcard Matching

    题目如下: 解题思路:本题和[leetcode]97. Interleaving String非常相似,同样可以采用动态规划的方法.记dp[i][j] = 1或者0 表示pattern[0:i]是否匹 ...

  8. boost IOStreams

    Boost.IOStreams provides numerous implementations of the two concepts. Devices which describes data ...

  9. 【Eureka】实现原理

    Eureka Client 拉取Eureka Server中的全量注册表 注册自身实例InstanceInfo至Eureka Server 初始化定时任务 心跳(续约)任务 拉取增量注册表更新本地注册 ...

  10. 【RabbitMQ】使用RabbitMQ实现延迟任务

    场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时. 场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单. 上述类似的需求是我们经常会遇见的问题. ...