当前位置: 首页 > news >正文

01Vue3

Vite3构建Vue3项目

1、输入命令npm init vite,使用包管理器初始化一个vite项目;

2、输入项目名称;

3、选择框架,vue

4、选择开发语言,JavaScript

5、cd 到项目目录

6、npm install

7、npm run dev

简单的Vue页面

<script setup>
</script><template><div class="div">hello 666</div>
</template><!--scoped:下面的样式只有当前组件生效-->
<!--如果不加scoped,则下面的样式对当前组件内引入的其他组件也生效-->
<style scoped>
.div {color: red
}
</style>

Vue3.0setup函数

setup函数是vue3中专门为组件提供的新属性。

创建组件实例,然后初始化props,紧接着就调用setup函数,会在beforeCreate钩子之前被调用

vue3.0中Vue页面的setup函数不是写在<script setup>上的。

<script>
import { defineComponent, reactive } from 'vue';
export default defineComponent({//setup是一个入口函数setup() {//响应式数据const state = reactive({count: 100,id: 1,name: 'jack',arr: [{ title: 1, id: 1 }, { title: 2, id: 2 }]})const change = () => {console.log(1111);state.arr.push({ title: 3, id: state.arr.length + 1 });}//将响应式数据开放出来,供template模版使用return {...state,//state解构完之后,数值类型丧失响应特性,引用类型仍然有响应特性change};},
})
</script><template><div class="div"><ul><li v-for="(v, i) in arr" :key="v.id">{{ v.title }}</li></ul>hello{{ count }} 666<button @click="change">点击</button></div>
</template><!--scoped:下面的样式只有当前组件生效-->
<!--如果不加scoped,则下面的样式对当前组件内引入的其他组件也生效-->
<style scoped>
.div {color: red
}
</style>

注意:在setup()函数中无法访问到this

vue3.2setup函数

<script setup>
import { ref, reactive } from 'vue'
//定义响应式数据,ref底层也是通过reactive实现的。let count = reactive({value:100})。
//模版中使用为了简化,可以直接使用count获取value的值。
//但是在js中,还是要通过count.value进行逻辑操作
let count = ref(100);//定义响应式数据
let arr = reactive([{ title: 1, id: 1 }, { title: 2, id: 2 }]);//定义响应式数据
let obj = reactive({id:99})
const change = () => {arr.push({ title: 3, id: arr.length + 1 })count.value += 1;
}
</script><template><div class="div"><ul><li v-for="(v, i) in arr" :key="v.id">{{ v.title }}</li></ul>hello{{ count }} 666--{{ obj.id }}<button @click="change">点击</button></div>
</template>

Vue3全家桶

reactive函数

reactive()函数接收一个普通对象,返回一个响应式的数据对象。底层是ES6的Proxy实现的

const o1 = reactive({id:1});
const o2 = {id:2};
//o2本来没有双向绑定,正常不能实时显式到页面上
//但是o1是一个双向绑定对象,o1.id的变化,会触发页面的刷新,从而也会导致o2.id被刷新到页面上
function change(){o1.
http://www.dtcms.com/a/321733.html

相关文章:

  • 增长强势 成果丰硕 | Fortinet发布2025年第二季度财报
  • GPT-5正式发布:与Claude 4、Gemini 2.5等主流大模型谁更胜一筹?
  • Java中重写和重载有哪些区别
  • 大模型——部署体验gpt-oss-20b
  • 写论文助手Zotero 的使用
  • Scrapy返回200但无数据?可能是Cookies或Session问题
  • electron 静默安装同时安装完成后自动启动(nsis)
  • 【vLLM 学习】Load Sharded State
  • VB网际探针:零依赖轻量爬虫实战
  • GPT-5 is here
  • STM32 输入捕获,串口打印,定时器,中断综合运用
  • centos系统配置防火墙
  • DDR-怎么计算存储空间-什么是预取(Pre-fetch)
  • 【世纪龙科技】汽车车身测量虚拟实训软件-虚境精测全维赋能
  • 应急响应流程
  • vue2-scoped关键字、组件通信
  • Qwen-Image擅长文字渲染的创作利器
  • 用 Go 写个极简反向代理,把 CC 攻击挡在业务容器之外
  • 深入浅出:掌握银河麒麟桌面操作系统的防火墙管理艺术
  • 3- Python 网络爬虫 — 如何抓取动态加载数据?Ajax 原理与实战全解析
  • Redis:集群(Cluster)
  • eNSP 模拟器安装教程
  • 深入理解模板方法模式:框架设计的“骨架”艺术
  • [激光原理与应用-180]:测量仪器 - 频谱型 - 干涉仪的定义、功能、原理、组成
  • 目标检测数据集 - 番茄叶病虫害检测数据集下载「包含VOC、COCO、YOLO三种格式
  • LeetCode盛最多水的容器
  • 线程死锁相关知识点
  • Pygame音频播放的最简框架代码示例
  • C#中LINQ to DataSet操作及DataTable与LINQ相互转换
  • 【问题解决】Mysql连接报错:1130-host ... is not allowed to connect to this MySql server