vue基础

2023-09-20 15:38:03

一、属性

(1)el:挂载点

<script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>
<body>
    <div id="app">
      <p>{{ message }}</p>
    </div>

    <script>
        new Vue({
          el: '#app',
          data: {
            message: 'Hello Vue.js!'
          }
        })
    </script>
</body>

总结步骤:

  1. 引入vue.js

  2. 在body中必须有一个挂载点

  3. new Vue,挂载到挂载点上

 (2)data:vm数据属性

<div id="app">
  {{ message }}
</div>

<script>
  var app = new Vue({
    el: '#app',
    data: {
      message: 'Hello Vue!'
    }
  })
</script>

(3)methods:方法定义属性

<div id="example-2">  
    <!-- `greet` 是在下面定义的方法名 -->  
    <button v-on:click="greet">Greet</button>
</div>

<script>
  var example2 = new Vue({
    el: '#example-2',
    data: {
      name: 'Vue.js'
    },
    // 在 `methods` 对象中定义方法
    methods: {
      greet: function (event) {
        // `this` 在方法里指向当前 Vue 实例
        alert('Hello ' + this.name + '!')
        // `event` 是原生 DOM 事件
        if (event) {
          alert(event.target.tagName)
        }
      }
    }
  })
</script>

 (4)computed:计算属性

<div id="example">
  <p>Original message: "{{ message }}"</p>
  <p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>

<script>
  var vm = new Vue({
    el: '#example',
    data: {
      message: 'Hello'
    },
    computed: {
      // 计算属性的 getter
      reversedMessage: function () {
        // `this` 指向 vm 实例
        return this.message.split('').reverse().join('')
      }
    }
  })
<script>

 (5)watch:监听属性

<body>
  <div id="app">
    <input type="text" v-model="message">
    <h2>状态:{{ state }}</h2>
  </div>
</body>

<script>
  let vm = new Vue({
    el: '#app',
    data: {
      message: 'Hello',
      state: '【未修改】'
    },
  
    watch: {//监听属性

      // 绑定监听数据
      message: function (e){
        // 当数据修改时做出响应(处理函数)
        this.state = '【已修改😀】'
        // ...
      }
    }
  })
</script>

(6)components:配置属性

<template>
  <div>
    <MyComponent title="Hello" content="World"></MyComponent>
  </div>
</template>

<script>
import MyComponent from './MyComponent.vue';

export default {
  components: {
    MyComponent
  }
}
</script>

二、指令

(1)v-html

双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML

<p>Using mustaches: {{ rawHtml }}</p>
<p>Using v-html directive: <span v-html="rawHtml"></span></p>

(2)v-if,v-else

该指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染

<div v-if="type === 'A'">
  A
</div>
<div v-else-if="type === 'B'">
  B
</div>
<div v-else-if="type === 'C'">
  C
</div>
<div v-else>
  Not A/B/C
</div>

(3)v-show

 另一个用于根据条件展示元素的选项是 v-show 指令。用法大致一样

<h1 v-show="ok">Hello!</h1>

(4)v-for

我们可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名

<ul id="example-1">
  <li v-for="item in items" :key="item.message">
    {{ item.message }}
  </li>
</ul>

<script>
  var example1 = new Vue({
    el: '#example-1',
    data: {
      items: [
        { message: 'Foo' },
        { message: 'Bar' }
      ]
    }
  })
</script>

(4)v-on

可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。  

<div id="example-1">
  <button v-on:click="counter += 1">Add 1</button>
  <p>The button above has been clicked {{ counter }} times.</p>
</div>

<script>
  var example1 = new Vue({ 
    el: '#example-1',
    data: {  
        counter: 0 
    } 
  })
</script>

 (4)v-model

V-model只不过是一个语法糖而已,真正的实现靠的还是

v-bind:绑定响应式数据

触发oninput 事件并传递数据

<input v-model="val">
<!-- 基本等价于,因为内部还有一些其他的处理 -->
$event是事件对象,$event.target.value表示input框中的输入值
<input :value="val" @input="val = $event.target.value"> 

(5)ref

 给组件起名字,相当于 id 标记,通过:this.$refs.名字 获取给Dom元素

<input type='text' ref='userInfo' />  <!--相当于给input框取个名字,相当于id-->

this.$refs.userInfo.value
this.$refs.changeColor.style.color='red'

三、组件之间通信

(1)父传子

父组件: <子组件 变量='内容' :属性='变量'></子组件>

子组件: props:['变量','属性']

<Son :num="count" ></Son>

<p>接受父组件数据:{{  num  }}</p>

 export default {
    props:['num']

}

(2)子传父

<Son @getData="getData" @changeNum="changeNum"></Son>

getData(val){
    console.log('子组件传递的数据val',val);
    this.num = val
},
changeNum(val){
    // this.count =9999;
    this.count =val;
}

//发送数据给父组件
send(){
    //语法
    // this.$emit('自定义事件名称','参数变量')
    this.$emit('getData',this.count)
},

 changeNum(){
    //通知父组件
    this.$emit('changeNum',999)

 } 

更多推荐

【库函数】Qt中Json的操作

参考博客:https://www.cnblogs.com/ybqjymy/p/17264853.htmlhttps://www.jb51.net/article/260149.htmhttps://blog.csdn.net/cpp_learner/article/details/118421096之前介绍了许多C++

QT实现相关功能

1、文本的保存mianwindow.h#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include<QMainWindow>#include<QFontDialog>//字体对话框#include<QFont>//字体类#include<QMessageBox>//消息对话框#inclu

企业申请ISO9001体系认证审核,流程分几步走?

ISO9001质量管理体系认证流程1.前期准备工作①建立文件化的质量管理体系;②质量管理体系运行三个月以上;③至少进行过一次内部质量管理体系内审与管理评审,且内审已覆盖所有的场所和标准条款;④提供质量手册及程序文件。2.信息交流与相关人士进行信息交流,通过人员互访、电话、传真、电子部件等方式相互了解,确定实施认证的初步

Meow

环境准备操作系统:KaliLinux或者Windows工具:nmap,telnetnmap工具[Kali官网]手册地址:https://www.kali.org/tools/nmap/摘要:Nmapisautilityfornetworkexplorationorsecurityauditing.Itsupportsp

1989-2022年企业排污许可证信息库数据(24万观测值)

1989-2022年企业排污许可证信息库数据(24万观测值)1、时间:1989-2022年2、指标:企业名称、登记状态、法定代表人、注册资本、成立日期、核准日期、所属省份、所属城市、所属区县、电话、更多电话、邮箱、更多邮箱、统一社会信用代码、纳税人识别号、注册号、组织机构代码、参保人数、企业类型、所属行业、曾用名、英文

Blender 学习笔记(一)

文章目录视图的移动右侧小键摄像机跟随调整摄像机的窗口比例当前角度变成拍摄视角视图(正视图,顶视图,侧视图)物体的对焦物体的移动,旋转,放大与缩小加选框选全选添加物体物体删除视图的移动shift+鼠标中键=平移鼠标中键=旋转中键滚轮=缩放右侧小键搜索键(放大与缩小),手掌(平移),摄像机(0键进入),正交与透视视图切换(

在线旅游平台步入新时代,携程如何走出自己的路?

今年旅游从线下到线上全方位火了。有统计数据,一季度,光是抖音,旅游达人发布视频数量就高达175万条,播放量1350亿次,收获27亿次点赞。在这一趋势下,许多“不出名”的景区和酒店借势抖音达人完成“出圈”。短视频如抖音也已开始布局酒旅赛道且势头渐盛。虽然行业竞争加剧,但传统OTA平台地位似乎依旧稳如磐石。9月5日,携程发

RCP-第2章 ROS+Matlab

RCP系列文章第一章Matlab安装第2章ROS+MatlabMatlab安装RCP系列文章前言一、Matlab获取二、安装1.解压10.软件安装中(我的电脑大约需要10分钟)12.完成)三、破解1.打开安装包解压后的【R2018b(64bit)】中的【Crack】文件夹2.全选该文件夹下所有文件鼠标右击选择【复制】4

企业电子招投标采购系统——功能模块&功能描述+数字化采购管理 采购招投标

​功能描述1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所有的立项信息。主要功能包含:招标立项申请、非招标立项申请、采购立项管理。3、采购项目管理:可对项目采购过程全流程

评价指标分类

声明本文是学习GB-T42874-2023城市公共设施服务城市家具系统建设实施评价规范.而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们1范围本文件确立了城市家具系统建设实施的评价原则、评价流程,给出了评价指标,描述了方汁.并却定了评价要求。家具系统建设实施的评价。通过文中的规成本文件必不可少的条款

【C++ 程序设计】实战:C++ 实践练习题(11~20)

目录11.循环计数、变量赋值、递增运算12.递归序列13.遍历输出结构体数组中每个元素的姓名和年龄14.指向整型变量的指针和一个整数作为参数15.从键盘读取字符,并执行操作,打印字符结果16.找出三位数中全部的水仙花数17.输入数字返回英文单词18.分科输入学生成绩计算总分、平均分19.创建一个5x5的二维数组,并按照

热文推荐