为什么网站打不开,网站方案制作,阿凡达网站建设网,wordpress去掉rss1 v-show与v-if区别
v-if与v-show可以根据条件的结果,来决定是否显示指定内容#xff1a; v-if: 条件不满足时, 元素不会存在. v-show: 条件不满足时, 元素不会显示(但仍然存在).
div idappbutton clickshow !show点我/but…1 v-show与v-if区别
v-if与v-show可以根据条件的结果,来决定是否显示指定内容 v-if: 条件不满足时, 元素不会存在. v-show: 条件不满足时, 元素不会显示(但仍然存在).
div idappbutton clickshow !show点我/buttonh1 v-ifshowHello v-if./h1h1 v-showshowHello v-show./h1
/div
scriptvar app new Vue({el:#app,data: {show:true}});
/script2 $nextTick
定义用于在下次 DOM 更新循环结束之后执行回调函数。它可以用来确保在更新 Vue 组件后再执行一些操作或获取更新后的 DOM 元素。
作用DOM更新完毕后执行回调函数
原理promise.then-Mutation0bserver-setImmdiate(宏任务)- setTimeout methods: {edit () {// 改数据-dom更新需要时间-等待dom更新完毕 操作domthis.isShow trueconsole.log(this.$refs.txtRef)// setTimeout(() {// this.$refs.txtRef.focus()// }, 2000)// this.$nextTick// DOM更新完毕后执行回调函数// 原理 promise.then-MutationObserver-setImmdiate-setTimeoutthis.$nextTick(() {this.$refs.txtRef.focus()})} 3 生命周期 vue2: beforecreat(创建前)、 created(创建后)、 beforemount(挂载前)、 mounted(挂载后)、beforeupdate(更新前)、updated(更新后)、beforedestroy(销毁前)、destroyed(销毁后) vue3 keep-live有两个生命周期 activated(){}当组件被激活的时候 deactivated(){当组件离开的时候 4 插槽 1、默认插槽
//子组件
slotslot插槽/slot //方法一slot namedefaultslot插槽/slot //方法二
//父组件
exercise-firstslot插槽/exercise-first
2、具名插槽
子组件slot nameheader/slot
//父组件 v-slot:main
exercise-firsttemplate v-slot:headerdiv具名组件/div/template
/exercise-first
3、作用域插槽
作用域插槽的语法: v-slot:slotNameparameter其中 slotName 是插槽的名称parameter 是接收子组件数据的参数。
父组件中定义的template v-slot:slotname2obj
子组件中定义的slot nameslotname2 :item1item value111 /slot
案例
!-- 子组件 --
templatedivslot nameitem v-foritem in items :itemitem/slot/div
/template!-- 父组件 --
templatedivtemplate v-slot:item{ item }p{{ item }}/p/template/div
/template 5 vuex vue2 1. State状态用于存储应用程序的状态数据即存储在Vuex中的数据。 2. Getters获取器用于从状态中派生出新的数据类似于Vue组件中的计算属性。 3. Mutations变更用于修改状态的方法必须是同步的。每个mutation都有一个字符串类型的事件类型和一个回调函数用于实际修改状态。 4. Actions动作类似于mutations但可以包含异步操作。Actions用于触发mutations可以包含任意异步操作如API请求等。 5. Modules模块用于将Vuex的状态分割成模块每个模块都有自己的state、getters、mutations和actions。 vue3 Pinia的核心概念有state,getter,action三个部分 vuex和pinia区别 1. Vuex的核心概念有state,getters,mutations,actions,moudles五个部分 2. Pinia的核心概念有state,getter,action三个部分 1. Vuex对state的修改推荐使用mutations中的方法进行修改, 2. Pinia直接对state进行修改 1. Pinia中 getteraction 也可通过 this 访问整个 store 实例 6 vue3与vue2区别
vue2语法特点 选项式api 缺点数据和逻辑分离 维护不太好 vue3语法特点与ts比较好 组合式api 代码量变少 分散式维护变成集中式维护 按需引入体积更小 7 keep-alive
动态组件 ---根据is属性值渲染对应组件
keep-alivecomponent :iscomName/component/keep-alive 8 路由模式
hash模式 默认hash 哈希模式地址上带#优点兼容性好缺点不美观原理 #后面地址改变不会引起页面刷新路由会检测到地址变化(window.onhashchange)拿到最新的地址找到
匹配的组件进行渲染mode: hash,
history模式
history模式 地址上不带#
优点美观 缺点兼容不好
原理采用h5的history相关api(pushState, replaceState)
必须服务器支持,配合后台
在脚手架环境下默认支持history模式 9 常见指令修饰符
.prevent阻止默认事件行为。.stop阻止事件冒泡。.capture事件捕获模式即在捕获阶段处理事件。.self只在事件是从触发元素自身触发时触发回调。.once只触发一次事件回调。.passive指示浏览器不要阻止事件的默认行为。.native监听组件根元素的原生事件。.sync双向绑定用于父子组件之间的数据传递
10 指令及其自定义指令 指令 v-text把数据当作纯文本显示. v-html遇到html标签,解析标签 v-if根据表达式的真假条件对元素 v-for基于源数据多次渲染元素或模板块。 v-on绑定事件监听器用于监听 DOM 事件。 v-bind动态地绑定一个或多个特性或一个组件 prop 到表达式。简写冒号。。。 v-model在表单控件或组件上创建双向绑定。 v-show根据表达式的真假值切换元素的显示状态。 v-cloak这个指令保持在元素上直到关联实例结束编译。 v-pre跳过这个元素和所有子元素的编译过程。 v-once只渲染元素和组件一次。 自定义指令
vue2
全局方式
// 全局注册一个自定义指令
Vue.directive(focus, {// 当被绑定的元素插入到 DOM 中时……inserted: function (el) {// 聚焦元素el.focus()}
})
局部方式
// 在组件中定义局部指令
directives: {focus: {// 指令的定义inserted: function (el) {el.focus()}}
}
vue3
全局方式
app.directive(color,{//直走一次mounted(el,binding){// //el是指令所在的元素。binding指令的值el.style.backgroundColorbinding.value},// //更新就会走会是响应式updated(el,binding){el.style.backgroundColorbinding.value}
})
局部方式
templatedivinput typetext v-focuscustorm-comp//div
/templatescript setupconst vFocus{mounted(el){el.focus()//聚焦}}
/scriptstyle/style