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

seo推广有哪些方式免插件优化wordpress

seo推广有哪些方式,免插件优化wordpress,网络营销公司网络推广,e站注册网站什么是依赖注入 个人的理解 #xff1a; 依赖注入#xff0c;是在 一颗 组件树中#xff0c;由 【前代组件】 给 【后代组件】 提供 属性值的 一种方式 #xff1b;这种方式 突破了 【父子组件】之间通过 props 的方式传值的限制#xff0c;只要是 【前代组件】提供的 依…什么是依赖注入 个人的理解 依赖注入是在 一颗 组件树中由 【前代组件】 给 【后代组件】 提供 属性值的 一种方式 这种方式 突破了 【父子组件】之间通过 props 的方式传值的限制只要是 【前代组件】提供的 依赖【后代组件】都可以执行注入使用我愿称之为 【跨代传值】。依赖注入使用到的 关键方法 provide() : 提供依赖 inject() : 注入依赖 依赖注入使用的注意事项 1、依赖注入的组件 必须是 一棵组件树的 前后代关系兄弟组件不支持 2、不建议后代组件中直接修改 注入的依赖的值建议 前代组件中 将修改依赖的方法一并暴露出去 3、依赖注入支持 全局的注入这个较为特殊一些 借用官网的一张图就是下面的样子依赖注入的使用方式 1、注入普通值 直接指定 key 和 value 2、注入响应式的值 注入的值是一个 响应式的对象 3、注入时提供默认值 inject() 方法 第二个参数可以指定默认值当没有提供依赖时 展示的时默认值 4、限制 提供的数据不能被 后代修改 使用 readonly 进行限制 5、同时提供响应式的修改方法 6、全局提供依赖 ; 可以在 app 中进行全局提供依赖所有的组件都可以注入依赖 7、使用 Symbol() 的方式指定 key 8、给 依赖注入 提供 类型约束下面对上述的清醒进行案例介绍1、注入普通值 provide(key,value) : 提供依赖 const value inject(key) : 注入依赖 前代组件 提供依赖 templatediv classbasedivAPP.vue 中的 msg : {{ msg }}brbr!-- 引入子组件 --ChildComponent //div/templatescript setup langts// 引入 provide 方法import { ref,provide } from vue// 引入子组件import ChildComponent from ./ChildComponent.vue// 声明父组件的一个变量const msg ref(这是父组件的msg变量)// 提供一个普通的依赖对象provide(key1,key1 的值)/scriptstyle scoped.basediv{width: 600px;height: 400px;border: 1px solid red;} /style后代组件 注入依赖 template!-- 子组件 --div classchilddiv子组件 - msg : {{ msg }}br注入的普通的依赖值 {{ key1Value }}/div/templatescript setup langts// 引入 inject 方法import { ref,inject } from vue// 声明一个变量const msg ref(这是子组件的msg变量)// 注入依赖 - 普通的数据const key1Value inject(key1)console.log(后代组件中接收到的 key1 的值 ,key1Value)/scriptstyle scoped.childdiv{width: 350px;border: 1px solid green;}/style运行效果 2、注入响应式的值 前代组件 提供依赖 templatediv classbasedivAPP.vue 中的 msg : {{ msg }}br APP.vue 中的 abc : {{ abc }}brbr!-- 引入子组件 --ChildComponent //div/templatescript setup langts// 引入 provide 方法import { ref,provide } from vue// 引入子组件import ChildComponent from ./ChildComponent.vue// 声明父组件的一个变量const msg ref(这是父组件的msg变量)// 提供一个响应式的依赖对象const abc ref(1001)provide(key2,abc)/scriptstyle scoped.basediv{width: 600px;height: 400px;border: 1px solid red;} /style后代组件 注入依赖 template!-- 子组件 --div classchilddiv子组件 - msg : {{ msg }}br注入的响应式依赖 {{ key2Value }}/div/templatescript setup langts// 引入 inject 方法import { ref,inject} from vue// 声明一个变量const msg ref(这是子组件的msg变量)// 注入依赖-响应式的依赖const key2Value inject(key2) console.log(后代组件中接收到的 key2 的值 ,key2Value)/scriptstyle scoped.childdiv{width: 350px;border: 1px solid green;}/style运行效果 3、注入依赖时写一个默认值 后代组件 在进行 依赖注入时如果前代组件没有 提供依赖则可以只用默认值进行代替 默认值 是 inject() 方法的第二个参数 前代组件 不提供依赖 templatediv classbasedivAPP.vue 中的 msg : {{ msg }}br br!-- 引入子组件 --ChildComponent //div/templatescript setup langts// 引入 provide 方法import { ref,provide } from vue// 引入子组件import ChildComponent from ./ChildComponent.vue// 声明父组件的一个变量const msg ref(这是父组件的msg变量)/scriptstyle scoped.basediv{width: 600px;height: 400px;border: 1px solid red;} /style后代组件 注入依赖 template!-- 子组件 --div classchilddiv子组件 - msg : {{ msg }}br注入的响应式依赖 {{ key2Value }}/div/templatescript setup langts// 引入 inject 方法import { ref,inject,toRef } from vue// 声明一个变量const msg ref(这是子组件的msg变量)// 注入依赖-响应式的依赖const key2Value inject(key2,key2的默认值) console.log(后代组件中接收到的 key2 的值 ,key2Value)/scriptstyle scoped.childdiv{width: 350px;border: 1px solid green;}/style运行效果 4、提供响应式的修改方法 前代组件 提供依赖 此时提供的依赖是 一个对象的形式 包含 数据 和 方法 templatediv classbasedivAPP.vue 中的 msg : {{ msg }}br APP.vue 中的 abc : {{ abc }}br!-- 引入子组件 --ChildComponent //div/templatescript setup langts// 引入 provide 方法import { ref,provide } from vue// 引入子组件import ChildComponent from ./ChildComponent.vue// 声明父组件的一个变量const msg ref(这是父组件的msg变量)// 提供一个响应式的依赖对象const abc ref(1001)// 提供修改的方法const changeABC (){console.log(App 中修改 abc 的值为 888);abc.value 888;}// 提供 依赖对象 和 方法provide(key2,{abc,changeABC})/scriptstyle scoped.basediv{width: 600px;height: 400px;border: 1px solid red;} /style后代组件 注入依赖 template!-- 子组件 --div classchilddiv子组件 - msg : {{ msg }}br注入的响应式依赖 {{ key2Value }}brbutton clickchangeAbcFromHd修改 abc 的值/button/div/templatescript setup langts// 引入 inject 方法import { ref,inject} from vue// 声明一个变量const msg ref(这是子组件的msg变量)// 注入依赖-响应式的依赖const key2Value inject(key2) console.log(后代组件中接收到的 key2 ,key2Value)// 点击按钮修改 依赖的值const changeAbcFromHd (){key2Value.changeABC();}/scriptstyle scoped.childdiv{width: 350px;border: 1px solid green;}/style运行效果 注意观察点击前后的 数据状态的变化 初始页面点击按钮后 5、readonly 限制修改 当想限制传递的依赖只能是只读时需要使用 readonly 关键字进行限制 注意 只能是针对 没有提供修改函数的依赖如果该依赖提供了修改函数通过修改函数触发的修改仍然是有效的。 前代组件 提供依赖 一个普通的一个只读的 templatediv classbasedivAPP.vue 中的 msg : {{ msg }}br APP.vue 中的 abc : {{ abc }}brAPP.vue 中的 xyz : {{ xyz }}br!-- 引入子组件 --ChildComponent //div/templatescript setup langts// 引入 provide 方法import { ref,provide,readonly } from vue// 引入子组件import ChildComponent from ./ChildComponent.vue// 声明父组件的一个变量const msg ref(这是父组件的msg变量)// 提供一个普通的依赖对象// provide(key1,key1 的值)// 提供一个响应式的依赖对象const abc ref(1001)const xyz ref(2002)// 提供 依赖对象provide(key2,abc)// 提供一个只读的依赖对象provide(key3,readonly(xyz))/scriptstyle scoped.basediv{width: 600px;height: 400px;border: 1px solid red;} /style后代组件 注入依赖 template!-- 子组件 --div classchilddiv子组件 - msg : {{ msg }}br!-- 注入的普通的依赖值 {{ key1Value }} --!-- br --注入的响应式依赖key2 {{ key2Value }}br注入的响应式依赖key3 {{ key3Value }}br/div/templatescript setup langts// 引入 inject 方法import { ref,inject } from vue// 声明一个变量const msg ref(这是子组件的msg变量)// 注入依赖-响应式的依赖const key2Value inject(key2) console.log(后代组件中接收到的 key2 ,key2Value)const key3Value inject(key3) console.log(后代组件中接收到的 key3 ,key2Value)// 延迟10s 执行修改console.log(new Date())setTimeout(() {console.log(new Date(), 开始执行 依赖值的修改 )key2Value.value 666;key3Value.value 888;}, 10000);/scriptstyle scoped.childdiv{width: 350px;border: 1px solid green;}/style运行效果 6、全局提供依赖 main.js 提供全局依赖 import { createApp } from vue// 根组件 import App from ./App.vue// 创建应用实例 const app createApp(App)// 直接注入一个全局的 依赖 app.provide(globalKey1,全局的变量值1)// 挂在应用渲染页面这一步应该是在最后执行的 app.mount(#app) 后代组件 注入依赖 template /templatescript setup langts// 引入 inject 方法import { inject } from vueconst globalValue inject(globalKey1)console.log(组件中注入全局的变量 ,globalValue)/scriptstyle scoped /style运行效果 7、Symbol() 的方式指定 key 之前我们在提供依赖的时候都是直接用字符串作为依赖的key 说实话这样做 一点毛病没有。 但是大家不都是讲求规范嘛Symbol() 就提供了这种方式 1、写一个专门用来声明 key 的文件 2、前代组件 引入 key提供依赖 3、后代组件 引入 key 注入依赖。 key 文件 // 声明 两个key export const KEY1 Symbol()export const KEY2 Symbol()前代组件 提供依赖 templatediv classbasedivAPP.vue 中的 msg : {{ msg }}br APP.vue 中的 abc : {{ abc }}br!-- 引入子组件 --ChildComponent //div/templatescript setup langts// 引入 provide 方法import { ref,provide } from vue// 引入子组件import ChildComponent from ./ChildComponent.vue// 声明父组件的一个变量const msg ref(这是父组件的msg变量)// 引入定义的keyimport { KEY1 ,KEY2} from ./key;// 提供依赖const abc ref(1001)provide(KEY1,abc)provide(KEY2,key2valueladfadfa)/scriptstyle scoped.basediv{width: 600px;height: 400px;border: 1px solid red;} /style 后代组件 注入依赖 template!-- 子组件 --div classchilddiv子组件 - msg : {{ msg }}br!-- 注入的普通的依赖值 {{ key1Value }} --!-- br --注入的响应式依赖key {{ keyValue }}br注入的响应式依赖key2 {{ key2Value }}br/div/templatescript setup langts// 引入 inject 方法import { ref,inject } from vue// 声明一个变量const msg ref(这是子组件的msg变量)// 引入 key import { KEY1,KEY2 } from ./key;// 注入依赖const keyValue inject(KEY1) const key2Value inject(KEY2) /scriptstyle scoped.childdiv{width: 350px;border: 1px solid green;}/style运行效果 8、 依赖注入 提供 类型约束 InjectionKey 接口 限制 依赖注入的值的类型 key文件 // 从 vue 中 导入 类型 import type { Ref,InjectionKey } from vue// 声明 key : 指定注入的依赖的值的类型是 Ref export const KEY1 Symbol() as InjectionKeyRefnumber // 声明 key : 指定注入的依赖的值的类型是 string export const KEY2 Symbol() as InjectionKeystring前代组件 提供依赖 templatediv classbasedivAPP.vue 中的 msg : {{ msg }}br APP.vue 中的 abc : {{ abc }}br!-- 引入子组件 --ChildComponent //div/templatescript setup langts// 引入 provide 方法import { ref,provide } from vue// 引入子组件import ChildComponent from ./ChildComponent.vue// 声明父组件的一个变量const msg ref(这是父组件的msg变量)// 引入定义的keyimport { KEY1 ,KEY2} from ./key;// 提供依赖const abc ref(1001)// 提供一个响应式的对象依赖provide(KEY1,abc) // 提供一个 普通的 string 对象provide(KEY2,key2valueladfadfa)/scriptstyle scoped.basediv{width: 600px;height: 400px;border: 1px solid red;} /style后代组件 注入依赖 template!-- 子组件 --div classchilddiv子组件 - msg : {{ msg }}br!-- 注入的普通的依赖值 {{ key1Value }} --!-- br --注入的响应式依赖key {{ keyValue }}br注入的响应式依赖key2 {{ key2Value }}br/div/templatescript setup langts// 引入 inject 方法import { ref,inject } from vue// 引入 Ref 类型import type { Ref } from vue;// 声明一个变量const msg ref(这是子组件的msg变量)// 引入 key import { KEY1,KEY2 } from ./key;// 注入依赖 同样可以使用泛型指定类型const keyValue injectRefnumber(KEY1) const key2Value injectstring(KEY2,默认值) /scriptstyle scoped.childdiv{width: 350px;border: 1px solid green;}/style运行效果 至此依赖注入的使用就完成了。
http://www.dnsts.com.cn/news/257146.html

相关文章:

  • 网站建设全包设计网站建设案例精英
  • 南京建设网站莱西建设局官方网站
  • 北京网站建设外包公司排名asp网站安全吗
  • 北京网站空间域名邢台信息港招聘
  • 整站网站模板网络推广服务费会计账务处理
  • 做网站的关键词网站左侧分类导航菜单
  • 做网站需要硬件设施购物网站开发软件
  • 南阳做网站收费河南网络建站
  • 网站wap版怎么做兰州网站制作有哪些
  • 贵州省建设厅网站公众一体化平台建设工程信息查询
  • 重庆网站seo设计中小企业网站建设费用
  • 什么是网站维护中本地合肥网站建设
  • 郑州做响应式网站开发公司给物业公司开办费
  • 青海西宁制作网站企业seo排名哪家有名
  • 要想用谷歌访问外国网站怎么做昆明 网站 制作
  • 专业网站建设制作多少钱网站结的建设ppt
  • 网站建设与开发的收获与体会广州网络推广策划公司
  • 做飞象金服的网站wordpress 自动获取标签
  • 建设工程网站168电信宽带做网站
  • 咨询行业网站建设公司首页>新闻>正文 网站怎么做
  • c 网站开发教程售后好的品牌策划公司
  • 鲜花网站建设的主要工作流程合肥网站开发外包
  • WordPress建站教程 网盘企业解决方案规划
  • 药物研发网站怎么做住房城乡建设部网站合同示范
  • 自己做的网站怎么设置地址wordpress主题调用js路径
  • 用wordpress建站会不会显得水平差产品市场推广方案
  • 车陂手机网站建设有限公司网站建设 中企动力重庆
  • 营销网站导航栏常见兰州市住房和城乡建设局网站
  • 做网站工作室名字免费的素材网站有哪些
  • 建立自己的网站费用Html5移动网站