vue3 一些关键属性
环境搭建
- 尤大开发了一个项目构建工具vite
npm init vite-app <project-name>
cd <project-name>
npm install
npm run dev
创建实例
- 之前是new Vue({})的形式来创建实例,vue3添加了一个新的方法--->creatApp
import {createApp} from 'vue'
const app =createApp({})
////////////////////////
import {
createApp
} from 'vue'
import App from './App.vue'
const app = createApp(App)
app.mount('#app')
<template>
<!-- 可以有多个节点 -->
<h1>hello world</h1>
<h1>x:{{ position.x }} y:{{ position.y }}</h1>
</template>
<script>
import { reactive } from 'vue';
// import HelloWorld from './components/HelloWorld.vue';
export default {
name: 'App',
// components: {
// HelloWorld
// },
setup() { //数据入口
let position = reactive({}); //构建响应式对象
window.addEventListener('mousemove', e => {
position.x = e.pageX;
position.y = e.pageY;
// console.log(position);
});
return { position }; //最后要暴露出这个数据
}
};
</script>
选项式api 与 组合式api
- 解决逻辑关注点分散的问题
vue2:选项式api,

vue3 :组合式api,写在setup()中,setup中没有this
export default {
name: 'App',
// components: {
// HelloWorld
// },
setup() { //数据入口
console.log('setup中的this为',this) //输出: setup中的this为 undefined
let position = reactive({}); //构建响应式对象
window.addEventListener('mousemove', e => {
position.x = e.pageX;
position.y = e.pageY;
// console.log(position);
});
return { position }; //最后要暴露出这个数据
}
};
ref
创建一个响应式变量
const time = ref(0); //创建值类型的变量 number string
reactive
- vue2中存在一个
Vue.observable方法,用来返回一个可响应的对象,在vue2中,data函数返回一个对象,vue内部会用Vue.observable来处理
const position = reactive({
//创建响应对象
x: 0,
y: 0,
info: computed(() => {
return `当前位置在 X: ${position.x} Y:${position.y}`;
})
});
toRef
可以用来为源响应式对象上的 property 性创建一个 ref。然后可以将 ref 传递出去,从而保持对其源 property 的响应式连接。
const state = reactive({
foo: 1,
bar: 2
})
//三种方式创建变量
const fooToRef = toRef(state, "foo"); // fooToRef++ 可以响应,state.foo同台改变
const fooRef = ref(state.foo); //无现象 stata不变
let foo = state.foo;//无现象 stata不变
通过上面的小测试可以看到,toRef是将变量与响应式对象建立引用关系,变量改变时可以改变源响应对象
toRefs
- 作用:让props中的值变成响应式的
传入的props是响应式的,会实时更新,传递给setup就能直接使用
export default {
props: {
title: String
},
setup(props) {
console.log(props.title)
}
}
每次调用props中的属性都需要用 props.[属性名]的形式,书写复杂,考虑到es6的解构赋值
但是使用es6解构会消除prop的响应性,所以使用toRefs来简化写法
props:{
user:{
type:String
}
}
import{toRefs} 'vue'
const { user } = toRefs(props)
watch
watchEffect
占坑
生命周期
| 选项式 API | Hook inside setup |
|---|---|
beforeCreate |
Not needed* |
created |
Not needed* |
beforeMount |
onBeforeMount |
mounted |
onMounted |
beforeUpdate |
onBeforeUpdate |
updated |
onUpdated |
beforeUnmount |
onBeforeUnmount |
unmounted |
onUnmounted |
errorCaptured |
onErrorCaptured |
renderTracked |
onRenderTracked |
renderTriggered |
onRenderTriggered |
vue3 一些关键属性的更多相关文章
- VUE3 之 Non-Props 属性
1. 概述 墨菲定律告诉我们:人总是容易犯错误的,无论科技发展到什么程度,无论是什么身份的人,错误总是会在不经意间发生.因此我们最好在做重要的事情时,尽量去预估所有可能发生的错误,并思考错误发生后的补 ...
- TCustomControl绘制自己和图形子控件共四步,TWinControl关键属性方法速记
TCustomControl = class(TWinControl) private FCanvas: TCanvas; procedure WMPaint(var Message: TWMPain ...
- Redis(二):redis命令构建及关键属性解析
上一篇文章,我们从框架层面,主要介绍了redis的启动过程,以及主要的命令处理流程逻辑.这些更多的都是些差不多的道理,而要细了解redis,则需要更细节的东西. 今天我们稍微内围的角度,来看看几个命令 ...
- CSS:布局的三个关键属性:float、position、display
最近在出差,就我一个在这里.客户要做几个页面,涉及到了页面的布局问题,没办法自己得做了.然后就遇到了一些问题.页面不论怎么都不能按照设想的布局. 以前也没有做过网页布局方面的工作.上网上找类似的例子, ...
- 【笔记】W3C CSS关键属性
white-space属性: white-space 属性设置如何处理元素内的空白. 可能的值 值 描述 normal 默认值,合并所有空格,换行符会被浏览器忽略 pre 空白会被浏览器保留.其行为方 ...
- RTB业务知识之2-Impression概念和关键属性
一.定义-impression This object describes an ad placement or impression being auctioned. A single bid re ...
- HttpSession的关键属性和方法
1.当一个用户向服务器发送第一个请求时,服务器为其建立一个session,并为此session创建一个标识号:2.这个用户随后的所有请求都应包括这个标识号.服务器会校对这个标识号以判断请求属于哪个se ...
- 关于vue3的inheritAttrs属性和$attrs的部分用法
当我们在父组件中想要为子组件的某一个标签添加一些样式(注意,这里的是指attributes,css样式只是其中一种属性而已) <show-message id="lkx" c ...
- [PHP] 编写爬虫获取淘宝网上所有的商品分类以及关键属性 销售属性 非关键属性数据
参考文章地址:https://blog.csdn.net/zhengzizhi/article/details/80716608 http://open.taobao.com/apitools/api ...
随机推荐
- 使用xshell连不上ubuntu14.04
判断Ubuntu是否安装了ssh服务: 输入:#ps -e | grep ssh 如果服务已经启动,则可以看到"sshd",否则表示没有安装服务,或没有开机启动,如果不是下图情况, ...
- Educational Codeforces Round 2 E. Lomsat gelral(dsu)
题目链接 题意:给你一棵以1为根n个点的树,问你以i为根的子树的众数和是多少 思路:dsu是一种优化暴力的手段 首先进行轻重链剖分 然后只记录重链的信息 轻链的信息就直接暴力查找 经过证明这样复杂度可 ...
- codeforces622E Ants in Leaves (dfs)
Description Tree is a connected graph without cycles. A leaf of a tree is any vertex connected with ...
- L3-007 天梯地图 (30分) 最短路+dp
最短路+dp思路:nuoyanli 520 Let's play computer game 输入样例1: 10 15 0 1 0 1 1 8 0 0 1 1 4 8 1 1 1 5 4 0 2 3 ...
- 【非原创】LightOJ - 1284 Lights inside 3D Grid【概率期望】
学习博客: 戳这里 戳这里 戳这里 戳这里 题意: 在一个三维的空间,每个点都有一盏灯,开始全是关的, 现在每次随机选两个点,把两个点之间的全部点,开关都按一遍:问k次过后开着的灯的期望数量: 题解: ...
- 7A - Kalevitch and Chess
A. Kalevitch and Chess time limit per test 2 seconds memory limit per test 64 megabytes input standa ...
- Github Docs All In One
Github Docs All In One docs https://docs.github.com/en https://github.com/github/docs GitHub REST AP ...
- GitHub Actions in Action
GitHub Actions in Action https://lab.github.com/githubtraining/github-actions:-hello-world https://g ...
- qt char与code的相互转换
QString str = "A"; QChar c = str.at(0); // int v_latin = c.toLatin1(); // 不能转中文 int v_lati ...
- Flutter: 监听App显示,隐藏
关键代码 class _MyAppState extends State<MyApp> with WidgetsBindingObserver { @override void initS ...