zoukankan      html  css  js  c++  java
  • Vue3类型判断和ref的两个作用

    1.类型判断的四种方法

    isRef: 检查一个值是否为一个ref对象
    isReactive:检查一个对象是否是由 reactive 创建的响应式代理
    isReadonly: 检查一个对象是否是由 readonly 创建的只读代理
    isProxy: 检查个对象是否是由 reactive 或者  readonly 方法创建的代理
    
    <template>
     <div>
        <div>
          <div>age:{{age}}</div>
           <button @click="func1">按钮</button>
        </div>
     </div>
    </template>
    <script>
    import {ref,isRef,reactive,
            isReactive,readonly,
            isReadonly, isProxy
            } from 'vue'
    export default {
      name: 'App',
      setup(){
        let age=ref(10);
        function func1(){
    
          // isRef: 检查一个值是否为一个ref对象
          console.log(isRef(age));//true
    
          // isReactive:检查一个对象是否是由 reactive 创建的响应式代理
          console.log(isReactive(reactive({age:10,name:'张三'})));//true
    
          // 检查一个对象是否是由 readonly 创建的只读代理
          console.log(isReadonly(readonly({})));//true
    
          // 检查个对象是否是由 reactive 或者  readonly 方法创建的代理
          console.log(isProxy(reactive({})));//true
          console.log(isProxy(readonly({})));//true
    
        }
        return {age,func1}
    },
    }
    </script>
    

    2 ref监听数据的变化

    使用ref函数,
    去使用监听某一个变量的变化,
    并且把它渲染到视图上.视图发生变化
    
    <template>
     <div>
        <div>
          <div>objState:{{objState}}</div>
           <button @click="func1">按钮</button>
        </div>
     </div>
    </template>
    <script>
    import {ref} from 'vue'
    export default {
      name: 'App',
      setup(){
        let objState=ref({
          name:'张三',
          age:10
        });
       
        function func1(){
          objState.value.name='变成李四';
          objState.value.age=14
          console.log(objState)
        }
        return {objState,func1}
    },
    }
    </script>
    

    01.gif

    3. ref获取页面中的元素

    <template>
      <div>
        <h2>input框自动聚焦</h2>
        <input ref="htmlinput" type="text" />
      </div>
    </template>
    <script>
    import { ref,onMounted } from "vue";
    export default {
      name: "App",
      setup() {
        let htmlinput=ref();
        
        //页面渲染完成
        onMounted(() => {
      
          <!-- if(htmlinput.value){
            // 获取input元素
            console.log( htmlinput.value  )
            // 让input自动去聚焦
            htmlinput.value.focus();
          } -->
    
          htmlinput.value&& htmlinput.value.focus();
          
        })
        return {htmlinput}
      },
    };
    </script>
    
    作者:明月人倚楼
    出处:https://www.cnblogs.com/IwishIcould/

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!

    万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    支付宝
    微信
    本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    SQL练习题32:请你创建一个actor_name表,并且将actor表中的所有first_name以及last_name导入该表.
    SQL练习题31:对于表actor批量插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)
    SQL练习题30:对于表actor批量插入如下数据(不能有2条insert语句哦!)
    npm run dev 报错:missing script:dev
    [转]vue中“:”、“.”、“@”的意义
    Vue踩坑记录
    Vue指令:v-clock解决页面闪烁问题
    npm-安装模块时出现rollbackFailedOptional
    js中[]、{}、()的区别
    IDEA离线安装插件
  • 原文地址:https://www.cnblogs.com/IwishIcould/p/15034313.html
Copyright © 2011-2022 走看看