首页 > 其他分享 >学习vue

学习vue

时间:2022-10-28 23:11:29浏览次数:72  
标签:vue return name default 学习 export 组件 data

vue

1、开发环境准备

安装node https://nodejs.org/en/

安装Vue工具

Vue CLi 安装命令:npm install -g @vue/cli

安装之后查看

vue --version

image-20221028160730511

vue 官网:https://cn.vuejs.org/

2、创建项目

vue create 项目名

注意:项目名字不能大写

image-20221028161135154

选择

image-20221028161216545

根据自己的需要选择

image-20221028161320975

默认即可

image-20221028161401172

输入n即可

image-20221028161500899

根据提示运行项目

image-20221028161622151

启动成功

image-20221028161721011

image-20221028161738061

3、模板语法

<template>
  <div>
    <h3>学习模板语法</h3>
    <p>{{message}}</p>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      message:"测试"
    }
  }
}
</script>
1、v-html  解析html标签
2、v-bind  响应式地绑定
3、v-if、v-else  根据值的真假移除或添加元素
4、v-show   根据值的真假显示或隐藏元素

4、列表渲染

v-for

<template>
  <div>
    <h3>列表渲染</h3>
    <ul>
      <li v-for="(item,index) in names">{{ item.name }}------>{{ index }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      names: [
        {id: 1, name: "小明"},
        {id: 2, name: "老大"},
        {id: 3, name: "老二"}
      ]
    }
  }
}
</script>

<style scoped>
ul {
  list-style: none;
}
</style>

image-20221028221126686

注意

<li v-for="(item,index) in names" :key="item.id">{{ item.name }}------>{{ index }}</li>
:key="item.id" 在数组元素改变时,会只重新渲染改变的数据,其它没变的不会重新渲染
减少性能的消耗

5、事件处理

@click或v-on:click

<template>
  <div>
    <h3>事件处理</h3>
    <button v-on:click="dianJi">点击</button>
    <h3>{{num}}</h3>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      num: 0
    }
  },
  methods: {
    dianJi() {
      this.num += 1;
    }
  }
}
</script>

<style scoped>
ul {
  list-style: none;
}
</style>

image-20221028222405803

6、双向数据绑定

v-model

<template>
  <div>
    <h3>双向数据绑定</h3>
    <input type="text" v-model="username">
    <h3>{{username}}</h3>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      username: ""
    }
  }
}
</script>

<style scoped>
ul {
  list-style: none;
}
</style>

image-20221028222739981

1、v-model.lazy  加上后输入数据回车或失去焦点才进行同步
2、v-model.trim 去除输入的空格

7、单文件组件

1、组件内容

<template>
  <div>
    <h3>单文件组件</h3>
  </div>
</template>

<script>
export default { //导出
  name: "MyComponents",
  data() {
    return {}
  }
}
</script>
//scoped 添加这属性 组件内设置的样式只会作用在这个组件
<style scoped>
h3 {
  color: red;
}
</style>

2、加载组件

1、引入组件  import myComponents from "@/components/MyComponents";
2、挂载组件components: {myComponents}
3、显示组件<my-components/>

image-20221028224131539

8、组件交互

props 父组件向子组件传值

 1、在父组件定义好值
  data() {
    return {
      title: "我是一个标题",
      age: 100
    }
  }
2、在显示组件上引用
<my-components :oneHiz="title" :age="age"/> 
3、最后在子组件上使用
export default {
  name: "MyComponents",
  props:{
    oneHiz:{ //需要定义类型
      type:String,
      default:""
    },
    age:{
      type:Number,
      default:0
    }
  }
}

9、自定义事件组件交互

现在子组件定义传递的值和事件

<template>
  <div>
    <h3>自定义组件传递数据</h3>
    <button @click="sendFather">发送</button>
  </div>
</template>

<script>
export default {
  name: "MyComponents",
  data() {
    return {
      msg: "我是MyComponents数据"
    }
  },
  methods: {
    sendFather() {
      //参数1: 字符串
      //参数2: 传递的数据
      this.$emit("onEvent", this.msg)
    }
  }
}
</script>

<style scoped>
h3 {
  color: red;
}
</style>

父组件接受值

<template>
  <div>
    <img alt="Vue logo" src="./assets/logo.png">
    <my-components @onEvent="getData"/>
  </div>
</template>

<script>

import myComponents from "@/components/MyComponents";

export default {
  name: 'App',
  components: {
    myComponents
  },
  methods: {
    getData(data) {
      console.log(data)
    }
  }
}
</script>

<style>
div {
  width: 400px;
  height: 400px;
  text-align: center;
  margin: 0 auto;
}
</style>

作用:子组件向父组件传递值

时间:2022-10-28 晚上

标签:vue,return,name,default,学习,export,组件,data
From: https://www.cnblogs.com/huxiaoan1/p/16837801.html

相关文章

  • vue项目环境搭建
    一:安装nvm(之前都是先安装node.js,但后来我发现nodejs版本到v18.7.0后启动项目报错digitalenveloperoutines::unsupported,所以我建议安装nvm)注意事项1.不能安装任何node......
  • 机器学习—主成分分析
       如何理解主成分分析法(PCA)-知乎(zhihu.com)(55条消息)主成分分析(PCA)原理详解_Microstrong0305的博客-CSDN博客_pca原理......
  • 【THM】Nmap Advanced Port Scans(Nmap高级端口扫描)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/nmap03介绍在Nmap基本端口扫描中,我们介绍了TCP标志以及TCP3次握手的过程。要启动TCP连接,首先要给第......
  • 学习笔记——Tomcat(服务器)
    2022-10-28Tomcat(1)含义:Tomcat是一个使用广泛的JavaWeb服务器。(2)官方下载地址:https://tomcat.apache.org/使用8.0版本的就OK。(3)在使用Tomcat之前需要的准备工作:正......
  • MarkDown学习
    标题#  一级标题##二级标题##三级标题 字体**HelloWorld!**粗体*HelloWorld!*  斜体***HelloWorld!***斜体加粗~~Hell......
  • 搭建一个node+vue的项目
    一.使用express搭建一个服务//1.导入expressconstexpress=require('express')//2.调用express函数,它的返回值就是服务器的实例constapp=express()//TODO_01配置......
  • web安全学习(sql注入1)
    web安全学习(sql注入1)一.简介sql语句就是数据库语句,而sql注入就是用户将自己构造的恶意sql语句提交,然后服务器执行提交的危险语句。sql注入可能造成信息泄露以及服务器......
  • 2022-10-28学习内容
    1.SharedPreferences用法1.1activity_share_write.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/and......
  • Git权威指南学习笔记(2)
    后面没啥特别好玩的了clone一个别人的项目gitclone<url><destnation>url可以为http、https、ssh、git、ftp、ftps等,clone过来的项目放在.git/refs/remotes/origin/......
  • Internet History, Technology, and Security课程学习第一周总结
    Summary1.Whatwastheprimaryreason(s)forthedevelopmentofstoreandforwardnetworksbytheacademiccommunity?Bybreakingcommunicationsthattravers......