【VUE】快速上手

server/2024/9/22 16:31:40/

一、快速上手

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.4/vue.global.prod.js"></script>
  • 按照vue.js的语法编写代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.4/vue.global.prod.js"></script>
</head>
<body>
<div id="app"><h1>欢迎光临红浪漫,尊贵的VIP:{{ name }}, 余额{{ balance }}</h1><button @click="doCharge">点击充值</button><button @dbclick="doCharge2">双击充值</button>
</div><script>javascript">var app = Vue.createApp({data: function () {return {name: "cqn",balance: 199}},methods:{doCharge: function () {this.name = 'zkf'this.balance = 299},doCharge2: function () {this.balance = this.balance + 1000}}});app.mount("#app")
</script>
</body>
</html>

vue语法操作和传统方式页面的操作的区别:

  • 传统方式页面功能:DOM中寻找标签+操作
  • vue.js的页面功能:js变量 <-> DOM中标签进行双向绑定,修改js中的变量,页面内容会实时发生变化
<div id="city"><h1>中国北京</h1>
</div><script>javascript">v1 = document.getElementById("city")v1.innerText="广东深圳"
</script>

二、组合式和选项式

Vue3支持的两种开发模式API:组合式和选项式

  • 选项式:简单,容易上手,需要使用this获取data-return中返回的值
	Vue.createApp({data:...methods:...})
  • 组合式:修改变量时同步至页面,变量设置时,需要加Vue.ref(“”),变量读取时,需要加.value,修改时,也要加.value
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.4/vue.global.prod.js"></script>
</head>
<body>
<div id="bob"><h1>欢迎光临红浪漫,尊贵的VIP:{{ name }}, 余额{{ balance }}</h1><button @click="doCharge">点击充值</button><button @dbclick="doCharge2">双击充值</button>
</div><script>javascript">var bob = Vue.createApp({setup: function () {var name = "cqn"var balance = Vue.ref(1000)var doCharge = function () {balance.value = 9999console.log(name, balance.value)}var doCharge2 = function () {console.log(name, balance.value)}return {name, balance, doCharge, doCharge2}}});bob.mount("#bob")
</script>
</body>
</html>

  • 解包
    var Vue = {name: "cqn", age: 19, email: "xxx"}var {name, age} = Vueconsole.log(name, age)const {createApp, ref} = Vue
  • 导包
import {createApp, ref} from 'ttt.js'
  • 常量和变量
    • 变量:var name = “cqn” // 可以被修改 name = ‘zkf’
    • 常量:const age = 19 // 不可以被修改 age = 18 -> 不支持
    • 常量:const info = { v1:19, v2:30 } // info = {} ->不支持,但是info.v1=18支持

三、必备基础

3.1 响应式基础(针对组合式API)

  • 变量/常量,不支持修改
  • ref,可以将值变成属性进行修改
    const name = ref(“cqn”)
    name.value 获取值
    name.value = ? 赋值
    var bob = Vue.createApp({setup: function () {var name = Vue.ref("cqn")var balance = Vue.ref(1000)var info = Vue.ref({"size": 18,"city": "北京"})var doChange = function () {name.value = 'zkf'balance.value = 9999info.value.size = 8888info.value.city = "深圳"info.value = {"size": 188,"city": "广州"}}return {name, balance, info, doChange}}}
    );
    bob.mount("#bob")
    
  • reactive
    const info = reactive({v1:123,v2:456})
    info.v1 获取值
    info.v2
    info.v1 = ? 赋值
    info.v2 = ?
    info = {v1:777,v2:777} -不支持被整体替换
    注意:只支持字典、列表等对象,不支持存放数字、字符串;无法被整体替换

3.2 插值表达式

<div id="bob"><h1>欢迎光临红浪漫,尊贵的VIP:{{ name }}, 余额{{ balance }}</h1><h1>{{ info.size }}</h1><h1>{{ info.city }}</h1><h1> {{ "cqn" }}</h1><h1> {{ "cqn" + "zkf" }}</h1><h1> {{ 100 + 200 }}</h1><h1>{{ balance > 500 ? "cqn" : "zkf" }}</h1><button @click="doChange">修改</button>
</div><script>javascript">var bob = Vue.createApp({setup: function () {var name = Vue.ref("cqn")var balance = Vue.ref(10)var info = Vue.reactive({"size": 18,"city": "北京"})var doChange = function () {info.size = 8888info.city = "深圳"balance.value = balance.value + 100}return {name, balance, info, doChange}}});bob.mount("#bob")
</script>

3.3 v-bind:对标签的属性进行操作

  • class = “[green pink]”
  • src = ?
  • style = “color:red; font-size:30px”
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title> <script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.4/vue.global.prod.js"></script><style>.red {border: 5px solid red;}</style>
</head>
<body>
<div id="app"><h1 v-bind:class="[green,pink]">北京</h1><h1 v-bind:class="[1===1?green:pink,cls]">上海</h1><h1 style="color:red; font-size:30px">深圳</h1><h1 v-bind:style="{color:'red', fontSize:'60px'}">广州</h1><img v-bind:src="url" v-bind:class="cls"><button @click="doChange">更换</button>
</div><script>javascript">var app = Vue.createApp({setup: function () {var url = Vue.ref("https://hcdn2.luffycity.com/media/frontend/index/0Python.png")var cls = Vue.ref("")var green = Vue.ref("green")var pink = Vue.ref("pink")var doChange = function () {url.value = "https://hcdn2.luffycity.com/media/frontend/course/%E5%88%97%E8%A1%A8%E5%9B%BE_D2emrko.png"cls.value = "red"}return {url, cls, green, pink, doChange}}});app.mount("#app")
</script>
</body>
</html>

3.4 v-model:用于用户交互的标签:input、select、textarea等

在JS代码中定义变量,HTML语法v-model绑定变量进行展示;用户输入数据,JS代码中的变量跟着变化 【双向绑定】

  • 选项式API:v-model指令
  • 组合式API:v-model指令 + ref/reactive
<body>
<div id="app"><h1>{{ city }}</h1><input type="text" placeholder="请输入用户名:" v-model="user"><h1>{{ user }}</h1>
</div><div id="bob"><h1>{{ city }}</h1><input type="text" placeholder="请输入用户名:" v-model="user"><h1>{{ user }}</h1>
</div><script>javascript">var app = Vue.createApp({setup: function () {var city = Vue.ref("北京")var user = Vue.ref("cqn")// var user = "cqn"return {city, user}}});app.mount("#app")var bob = Vue.createApp({data: function () {return {city: "上海",user: "zkf"}}});bob.mount("#bob")
</script>
</body>

示例:输入框绑定
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/3.3.4/vue.global.prod.js"></script><style>.box {width: 400px;height: 200px;margin: 200px auto;border: 1px solid #ddd;}</style>
</head>
<body>
<div id="app"><div class="box"><h3>用户登录</h3><p>
<!--            <input type="text" placeholder="用户名" v-model="user">--><input type="text" placeholder="用户名" v-model="info.user"></p><p>
<!--            <input type="text" placeholder="密码" v-model="pwd">--><input type="text" placeholder="密码" v-model="info.pwd"></p><p><input type="button" value="提交" @click="doSubmit"><input type="button" value="重置" @click="doCancel"></p></div>
</div><script>javascript">var app = Vue.createApp({setup: function () {const user = Vue.ref("")const pwd = Vue.ref("")const info = Vue.ref({user: "",pwd: ""})const doSubmit = function () {// console.log(user.value, pwd.value)console.log(info.value)}const doCancel = function () {// user.value = ""// pwd.value = ""info.value.user = ""info.value.pwd = ""}return {user, pwd, info, doCancel, doSubmit}}});app.mount("#app")
</script>
</body>
</html>

http://www.ppmy.cn/server/120353.html

相关文章

专业学习|动态规划(概念、模型特征、解题步骤及例题)

一、引言 &#xff08;一&#xff09;从斐波那契数列引入自底向上算法 &#xff08;1&#xff09;知识讲解 &#xff08;2&#xff09;matlap实现递归 &#xff08;3&#xff09;带有备忘录的遗传算法 &#xff08;4&#xff09;matlap实现带有备忘录的递归算法 “&#xff1…

tensorflow同步机制

tensorflow同步机制 在 TensorFlow 中&#xff0c;多算子&#xff08;operators&#xff09;和多核&#xff08;CPU 核或 GPU 核&#xff09;同步机制旨在提高深度学习模型的计算效率和资源利用率。主要涉及以下几个方面&#xff1a; 1. 多算子并行化 TensorFlow 通过数据流…

讨论人机交互研究中大语言模型的整合与伦理问题

概述 论文地址&#xff1a;https://arxiv.org/pdf/2403.19876.pdf 近年来&#xff0c;大规模语言模型发展迅速。它们给研究和教育领域带来了许多变化。这些模型也是对人机交互&#xff08;HCI&#xff09;研究过程的有力补充&#xff0c;可以分析定性和定量数据&#xff0c;再…

【java面试每日五题之基础篇一】(仅个人理解)

1. 怎么理解面向对象编程&#xff08;Object Oriented Programming&#xff0c;OOP&#xff09; 面向对象编程是一种编程范式&#xff0c;核心思想是将真实世界中的事物都抽象为对象&#xff0c;通过与代码中的对象进行交互从而实现各种需求&#xff0c;对于OOP中关键概念的理解…

MELON的难题- 华为OD统一考试(E卷)

2024华为OD机试&#xff08;C卷D卷&#xff09;最新题库【超值优惠】Java/Python/C合集 题目描述 MELON 有一堆精美的雨花石&#xff08;数量为 n&#xff0c;重量各异&#xff09;&#xff0c;准备送给 S和 W&#xff0c;MELON 希望送给俩人的雨花石重量是一致的。请你设计一…

免密执行远程服务命令

1&#xff1a;生成密钥对 要在本地使用SCP命令从远程主机复制文件而无需输入密码&#xff0c;你可以使用SSH密钥认证。以下是具体步骤&#xff1a; 生成SSH密钥对&#xff1a;在本地机器上打开终端&#xff0c;执行以下命令生成SSH密钥对&#xff1a; ssh-keygen -t rsa 不用…

erlang学习:Linux常用命令2

目录操作命令 对目录进行基本操作 相关cd切换目录之类的就直接省去了&#xff0c;以下操作中都会用到 查看当前目录下的所有目录和文件 ls 列表查看当前目录下的所有目录和文件&#xff08;列表查看&#xff0c;显示更多信息&#xff09; ls -l 或 ll 在当前目录下创建一个…

宝兰德MCP系列介绍 ①:中间件管理能力全线升级,驱动企业数字化管理效能提升

在企业数字化转型加速与新技术涌现下&#xff0c;中间件作为衔接底层基础设施和上层业务应用的桥梁&#xff0c;应用愈发广泛且关键。但为了有效管理并维护众多类型的中间件&#xff0c;企业需更多专业运维与资源&#xff0c;这大大分散业务焦点并提升成本。因此&#xff0c;优…