Vue3案例详解(二)

此篇文章编写于2023年7月5日.如果查阅时间太久请注意版本的迭代.

本篇文章主要针对于初学VUE的新手,对vue网站上的案例进行了详细解释.

在此之前你可以先学习:

Vue互动教程

Vue示例

快速上手 | Vue.js

Vue案例详解(一)

我比较喜欢用详细的注释来进行学习,所以话不多,代码和注释管够.

Vue代码的组织格式有两种:选项式,组合式,官方虽然没有明确表示哪种跟好一些,但是从实际情况来说,组合式代码更加的简洁(没有那么多大括号),而且与js代码组织形式更加的类似,所以我推荐使用组合式,当然,熟练了其中一个,另外一个也不会有问题.

好了,不废话,我们开始.

1.使用VSCode创建好项目,在src/compenonts下创建demo2.vue

<!-- 
    本示例演示html控件与vue对象之间的双向绑定 
    所谓的双向绑定就是当其中一个值发生变化时,另外也会一起变化.
    双向绑定的前提是使用ref或者reactive定义变量.
    ref用来定义简单类型,在vue中需要用.value获取值.
    reactive用来定义复杂数据类型.
-->
<script setup>
import { ref,reactive } from 'vue'

const str = ref('试试修改这段文字')
const checked = ref(true)
// 使用[]表示是一个数组
const checkedNames = ref(['Jack'])
// 如果这里使用const picked = 'One',那么就不是响应式对象,就不能发生双向绑定
const picked = ref('One')
const selected = ref('A')
const multiSelected = ref(['A'])
</script>
<!-- template是一个模板,它的好处是,不会在html中产生任何多的标签 -->
<template>
  <h2>Text Input</h2>
<!-- 
    以v-开头的表示是Vue的属性(例如:v-model),等号后面是vue定义的对象
    v-model自动匹配控件的value属性,所以在控件中,不能同时使用value属性.
    str对象是由ref封装的,获取值应该使用str.value,但是在template中自动解封.
 -->
  <input v-model="str" />{{ str }}

  <h2>Checkbox</h2>
  <!-- checked为true,所以复选框默认被选中 -->
  <input type="checkbox" id="checkbox" v-model="checked">
  <label for="checkbox">Checked: {{ checked }}</label>

  <!--
    多个复选框可以绑定到相同的 v-model 数组:checkedNames
    数组和复选框的值相互映射,数组的值会反应在复选框中,复选框的值也会反馈给数组.
  -->
  <h2>Multi Checkbox</h2>
  <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
  <label for="jack">Jack</label>
  <input type="checkbox" id="john" value="John" v-model="checkedNames">
  <label for="john">John</label>
  <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
  <label for="mike">Mike</label>
  <p>Checked names: <pre>{{ checkedNames }}</pre></p>

  <h2>Radio</h2>
  <!-- 当v-model中的值遇控件value的值一致时,单选按钮为选中状态 -->
  <input type="radio" id="one" value="One" v-model="picked">
  <label for="one">One</label>
  <br>
  <input type="radio" id="two" value="Two" v-model="picked">
  <label for="two">Two</label>
  <br>
  <span>Picked: {{ picked }}</span>

  <h2>Select</h2>
  <!-- 下来列表的v-model表示被选中的值, disabled属性表示这个选项禁止选择-->
  <select v-model="selected">
    <option disabled value="">Please select one</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
  </select>
  <span>Selected: {{ selected }}</span>
<!-- 多选列表中v-model是一个数组,按住ctrl键可以多选 -->
  <h2>Multi Select</h2>
  <select v-model="multiSelected" multiple style="width:100px">
    <option>A</option>
    <option>B</option>
    <option>C</option>
  </select>
  <span>Selected: {{ multiSelected }}</span>
</template>

2. 在项目的src文件夹下创建text2.html页面代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>demo2示例</title>
</head>
<body>
    <!-- <template id="item">这个写法是错的</template> -->
    <div id="item"></div>
    <script type="module">
        import {createApp} from 'vue'
        // ./表示当前文件夹下
        import demo2 from './components/demo2.vue'
        //将组件创建为一个名为demo2的app,并将其挂载(加载)到id为item的标签中.这里不能是template
        createApp(demo2).mount("#item")
    </script>
</body>
</html>

3.在终端运行:npm run dev

执行成功后,根据给出端口打开浏览器查看你的页面.

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值