成都网站设计最加科技,网站建设需要注意什么,wordpress手机类主题,wordpress模板修改服务侦听器 1.计算属性允许我们声明性地计算衍生值,而在有些情况下#xff0c;我们需要状态变化时执行一些方法例如修改DOM。 2.侦测数据源类型#xff0c;watch的第一个参数可以市不同形式的‘数据源’#xff0c;它可以市一个ref(包括计算属性)#xff0c;一个响应式对象我们需要状态变化时执行一些方法例如修改DOM。 2.侦测数据源类型watch的第一个参数可以市不同形式的‘数据源’它可以市一个ref(包括计算属性)一个响应式对象一个getter函数或者多给数据源组成的数组不可以直接侦测一个响应式对象的属性值。 3.深层侦听器,直接给watch()传入一个响应式对象会隐式地创建一个深层侦听器该回调函数在所以嵌套的变更都会触发,深度侦测需要遍历所以被侦测的对象当用于大型数据结构时开销很大因此在必要时使用它。 4.即时回调的侦听器watch默认时懒执行只有当数据发生变化时才触发回调但是有的场景需要侦听器在创建的时候立即执行一次可以使用 immediate:true 来强制侦听器立即执行。 5.watchEffect() 可以消除手动维护依赖列表的负担如果你需要侦听一个数据结构中的几个属性watchEffect()比深度侦听器更有效因为它将只跟踪回调中使用到的属性而不是递归跟踪所有属性watchEffect仅会在其同步执行期间才会追踪依赖,在使用异步回调只有第一个await才会被追踪。 6.watch和watchEffect都能响应地执行有副作用的回调它们之间主要是追踪响应式依赖的方式watch只追踪明确的数据源它不会追踪任何在回调中访问到的东西另外仅在数据源确实改变才会触发watch会避免在发生副作用时追踪依赖因此我们能更准确地控制回调函数的触发时机watchEffect则会在副作用发生期间追踪依赖它会在同时执行过程中自动追踪所有能访问到的响应式属性这更方便而且代码往往更简洁使得响应式依赖关系会不那么明确。 7.回调函数触发时机当你更改了响应式状态它可能会同时触发Vue组件更新和侦听器回调默认情况下用户创建的侦听器会在Vue组件更新之前被调用,这意味侦听器中访问DOM是在Vue更新之前的状态如果你想在Vue更新DOM之后需要指明 flush:post 选项。 8.停止侦听器在setup()或者script setup中用同步语句创建的侦听器会自动绑定到宿主组件实例上并且会在宿主组件上自动卸载停止因此你不必关系怎么停止一个侦听器如果你为了防止内存泄漏需要手动停止它就调用watch或watchEffect返回的函数。 浅层侦听器
script setupimport {ref,watch} from vueconst data ref()watch(data, async(newQuestion,oldQuestion){console.log(数据发生了改变)})/script
深层侦听器
script setupimport {ref,watch} from vueconst data reactive({count:0})watch(data, async(newQue/stion,oldQuestion){console.log(数据发生了改变)},{deep:true}
)/script 模板引用 1.虽然Vue的声明性渲染模型抽象了大部分对DOM的直接操作但在某些情况下我们仍然需要直接访问底层DOM元素实现这一点我们可以使用特殊的ref它允许我们在一个特定的DOM元素或子组件实例被挂载后,获得对它得直接引用。 2.在v-for中的模板引用ref对应的ref中包含的值是一个数组它将在元素被挂载后包含对应整个列表的所以元素。 3.函数模板引用除了使用字符串作为名字ref还可以绑定一个函数在每次组件更新时被调用。 4.组件上的ref如果一个子组件使用选项式API或者没有使用script setup被引用的组件实例和该子组件的this完全一致这意味着父组件对子组件的被一个属性和方法都有完全的访问权这使得在父组件和子组件之间创建紧密耦合的实现细节变得很容易当然也因此应该在绝对需要时才使用组件引用。 script setupimport {ref,onMounted} from vueconst input ref(null)onMounted((){input.value.focus()})
/script
templateinput :refinput
/template
script setupimport {ref,onMounted} from vueconst input ref(null)onMounted((){input.value.focus()})
/script
templateinput :ref(el){}
/template