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

vue3.0--3.isRef、toRefs、toRef、readonly,公共数据配置、网络配置、app.use插件配置、路由配置

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

目录

文章目录

1、isRef,toRefs,toRef

2、readonly

3.公共数据配置

4.网络配置

5、app.use插件配置

6、路由配置



1、isRef,toRefs,toRef

toRef
        作用:创建一个ref对象,其value指向另一个对象中得某一个属性
        语法:const name = toRef(data,‘name’)
        应用:要将响应式对象中得某个属性单独提供给外部使用时

        拓展:toRefs与toRef功能一致 但可以批量创建多个ref对象 语法:toref(data)

        为了能在template写的简短,引用toRef处理
        被toRef包裹的响应式,修改时候直接读取原来响应式reactive代理属性 实时响应变化
        不使用toRef则响应式的修改就会出现Bug

        // 使用toRef进行对某个重新赋值的属性添加响应式

const skill = toRef(data,‘skill’)
const age = toRef(data,‘age’)
const name = toRef(data,‘name’)
const salary = toRef(data,‘salary’)
console.log(skill,‘哈哈哈’)
return {data,skill,age,salary,name}

toRefs

        toRefs为了完善toRef
                1.toRefs可以直接处理多个属性的解构
                2.可以简化代码

                const allProps = toRefs(data)

ref和toRef区别:

        ref->复制, 修改响应式数据不会影响原始数据

        ref->数据发生改变, 界面就会自动更新
       

        toRef->引用, 修改响应式数据会影响原始数据
        toRef->数据发生改变, 界面也不会自动更新

isRef、toRef和toRefs的示例应用如下:

2、readonly

        取得一个对象(反应性或普通)或ref并返回一个只读代理。访问的任何嵌套属性也将是只读的。
        传入普通对象等返回只读代理。
        传入普通数值或字符串不能变成只读,例如 readonly(‘abc’)

readonly的示例应用如下:

注意:

        在调用父组件方法修改readonly的对象时,没问题。

        直接在子组件修改父组件对象就会出现警告。

3.公共数据配置

(1)第一种方式

       1、 在vite里面的main.js里面去配置:

const app=createApp(App)
app.config.globalProperties.$hqyj=公共数据

        2、在app.vue里面去写入:

<script setup>
	import {getCurrentInstance} from "vue"
	let ziduan=getCurrentInstance()
	console.log(ziduan,ziduan.proxy.$hqyj,ziduan.proxy.rank)
</script> 

(2)第二种方式

        直接在app.vue里面去写入:

<script>
		import {getCurrentInstance} from "vue"
		export default{
				mounted(){
					
				},
				setup(){
					 let {proxy}=getCurrentInstance()
					 console.log(proxy.$hqyj,proxy.rank)
				}
		}
	
</script>

4.网络配置

1.在vite环境里面的vite.config.js里面去配置:

server:{
		proxy: {
		          '/api': { 
		              target: 'http://127.0.0.1:7001', // 代理的目标地址
		              rewrite: (path) => path.replace(/^\/api/, '/'), // 路径重写
		              changeOrigin:true,
		              // secure: true, // target是否https接口
		              // ws: true, // target是否代理websockets               
		          }
		      }
	}

        2.再去main.js里面去配置:

axios.defaults.baseURL=" http://127.0.0.1:5173/api"
app.config.globalProperties.$axios=axios

        3.最后再去后端的router.js文件里面和controller里面的home.js里面去写接口。

2.在webpack环境里面的vue.config.js里面去配置:

module.exports={
	lintOnSave:false,
	devServer:{
		port:"10086",
		host:"localhost",
		proxy:{
			"/":{
				target:"http://127.0.0.1:7001",
				changeOrigin:true,
				pathRewrite:{"^/":""}
			}
		}
	}
}

5、app.use插件配置

1.先在main.js文件里面去封装自己要写入的文件:

// 工具的封装
import $axios from "./http/$axios.js"
app.use($axios)
import $hqyj from "./http/$hqyj.js"
app.use($hqyj)

2.在创建相应的文件http,在http里面去创建$axios.js和$hqyj.js后,在去两个文件里面写入自己需要的功能。

$axios.js文件里面:

import axios from "axios"
function $axios(app){
	axios.defaults.baseURL=" http://127.0.0.1:5173/api"
	app.config.globalProperties.$axios=axios
}
export default $axios;

$hqyj.js文件里面:

function $hqyj(app){
	app.config.globalProperties.$hqyj="5000e"
}
export default $hqyj;

6、路由配置

 1.创建
            方式一:    npm init vite hello-vue3 -- --template vue   生成一个模板页面
            方式二:   npm init vite taobao  可以选择集成的插件(路由 仓库 ts 等等)

           vue3.0的配置方式和vue2.0的配置一样

2.在router.js里面去写:

其他的步骤和vue2.0一样,前提是必须在app.vue页面里面写入

<router-view></router-view>

这样才会显示。

相关文章:

  • 【python】(十八)python常用第三方库——pymysql
  • 供应水溶性喹啉腈磺酸盐母体,QM-SO3,CAS:1800102-18-4
  • Unity Shader LOD详解
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • Linux环境:Nginx配置SSL证书,https协议请求 443端口
  • git tag相关
  • HTML篇三——(1)
  • Android移动应用开发之六种布局
  • Nginx 学习笔记
  • 【027】mongoose V6.4之创建监听套接字fd
  • 《安富莱嵌入式周报》第283期:全开源逆向“爆破”硬件工具,Linux内核6.1将正式引入RUST语言,I3C培训教程,80款市场成熟的电感式位置传感器设计
  • 操作系统实验六 文件管理
  • Bert(Bidirectional Encoder Representations from Transformers)
  • oracle使用rman备份实现异机数据恢复
  • 巩固类和对象的知识点——牛客5道题目
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • Git 使用集
  • HomeBrew常规使用教程
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript-Array类型
  • javascript从右向左截取指定位数字符的3种方法
  • Phpstorm怎样批量删除空行?
  • RxJS: 简单入门
  • SegmentFault 2015 Top Rank
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 利用jquery编写加法运算验证码
  • 前端面试题总结
  • 使用API自动生成工具优化前端工作流
  • Nginx实现动静分离
  • Spring Batch JSON 支持
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #Z2294. 打印树的直径
  • (4.10~4.16)
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二)springcloud实战之config配置中心
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (理论篇)httpmoudle和httphandler一览
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (实战篇)如何缓存数据
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .Net - 类的介绍
  • .NET 4.0中的泛型协变和反变
  • .net core控制台应用程序初识
  • .NET MVC之AOP
  • .NET企业级应用架构设计系列之开场白
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [C++核心编程](四):类和对象——封装
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行