Vuex 辅助函数实践0、初始化
123456const app = new Vue({ ...App, store, i18n})app.$mount()
1、添加vuex加载器
12import {mapState,mapActions,mapMutations} from "vuex"
2、在computed使用state变量,对应的模块
12345computed: mapState({ service_cate: state => state.service.service_cate, recommend_list: state => state.service.recommend_list, subColor: state => state.config.configInfo.subColor,}),
3、在methods中加载对应的方法名,类型【数组】
1234methods: { ...mapActions(['get ...
ref和refstoRef的用法规范化签名:将一个普通对象变为非响应式ref ,通过.value访问
123const obj = { count: 0 };const countRef = toRef(obj);console.log(countRef.value); // 输出:{ count: 0 }
对象属性签名:将reactive中具体某个对象双向 ref,会与源属性同步
123456789101112131415const state = reactive({ foo: 1, bar: 2})// 双向 ref,会与源属性同步const fooRef = toRef(state, 'foo')// 更改该 ref 会更新源属性fooRef.value++console.log(state.foo) // 2// 更改源属性也会更新该 refstate.foo++console.log(fooRef.value) //3
toRefs用法:123toRefs(<reactiv ...
vue3中使用const和function声明函数的差异在 JavaScript 和 TypeScript 中,const 和 function 声明在作用域内是可见的,但是它们在代码执行时的处理方式有所不同,尤其是在 Vue 3 的 <script setup> 语法中。
const 声明使用 const 声明的变量,其初始化表达式会在代码执行时立即求值。这意味着 const 声明的变量在使用之前必须已经初始化完成。如果你尝试在一个 const 声明之前使用该变量,将会抛出 ReferenceError,因为此时变量还没有被初始化。
function 声明对于 function 声明,JavaScript 引擎会在代码执行前对其进行“提升”(hoisting)。这意味着即使 function 声明在物理位置上位于代码的后面,它也可以在声明之前被调用。这是 JavaScript 函数提升(function hoisting)的特性。
为什么使用 function 可以而 const 不可以在你的例子中,使用 function 声明 useFunction 可以工作,是因为 ...
css效果技巧1、文字自适应宽度给文本设置display: inline-block;可以让文本内容自动设置宽度
12345678910111213141516171819202122232425262728293031323334<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .layout{ height: 80px; width: 50%; max-height: 98px; padding-top ...
卡片布局1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859/* 频道-卡片*/.case-card-container { display: grid; grid-template-columns: repeat(auto-fill, 380px); justify-content: center; /* 居中布局 */ gap: 20px; /* 卡片之间的间距 */ padding: 20px; /* 容器内边距 */ max-width: 1260px; margin: 0 auto; max-height: 1770px; /*todo: 有分页后可以max-height限制和over */ overflow: hidden;}.case-card { width: 380px; height: 420px; box-shadow: 0 4px 8px rg ...
深度作用选择器如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符:
12<style scoped> .a >>> .b { /* ... */ } </style> 上述代码将会编译成:.a[data-v-f3f3eg9] .b { /* … */ }
有些像 Sass 之类的预处理器无法正确解析 >>>。这种情况下你可以使用 /deep/ 或 ::v-deep 操作符取而代之——两者都是 >>> 的别名,同样可以正常工作。
1、>>>
12345<style lang="css" scoped>.a >>> .b { /* ... */ }</style>
但是像scss等预处理器却无法解析>>>,所以我们使用下面的方式
2、/deep ...
Electron 网络模块Electron 是一个开源的桌面应用程序开发框架,它基于 Chromium 和 Node.js。Electron 的网络模块主要用于处理应用程序中涉及网络通信的需求。以下是一些使用 Electron 网络模块的常见情况:
HTTP 请求和响应: 当你的桌面应用需要与远程服务器进行 HTTP 请求和获取响应时,可以使用 Electron 的网络模块。这包括从服务器获取数据、上传文件、或与远程 API 进行通信。
1234567const { net } = require('electron');const request = net.request('https://example.com/api/data');request.on('response', (response) => { // 处理响应数据});request.end();
WebSocket 通信: 如果你的应用需要使用 WebSocket 进行实时通信,Electron 也提供 ...
Electron接入Dll须知说明
Dll运行在window系统上
C# 调用c++编译的Dll,需要动态加载 DllImport
C# 是托管语言:C# 运行在 .NET 或 .NET Core 的托管环境中,因此与 C/C++ 等非托管语言不同。C/C++ 可以直接与操作系统进行交互,而 C# 主要通过 CLR(公共语言运行时)与系统交互。
C# 中不能使用 extern "C" 导出函数,extern "C" 是 C++ 中用于导出 C 语言符号的一种方式
如果你想从 C# 导出函数供其他非托管代码调用,你通常需要使用 C++/CLI 或编写一个 C++ 中间层来处理与托管和非托管代码的交互。
这是标准的以C风格导出的dll,这样才能被后面的库正常调用
123extern "C"{ __declspec(dllexport) }
dll依赖检查方法使用DependenciesGui.exe检查依赖和导出的函数
加载问题检查:
c和C++混合,没问题( ...