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

网站优化用户体验数据分析师需要学哪些课程

网站优化用户体验,数据分析师需要学哪些课程,产看网站权重,东莞前十的外贸公司组件之间的传值 1、父传子 props 2、父传子 slot 3、父传子 不建议用 attrs 4、 子传父 ref 5、子传父 emit 6、povide/inject只能在setup的时候用。 7、利用vuex和pinia去实现数据的交互 1、实现代码App.vue <script setup>import TestProps from ./components/T…

组件之间的传值

1、父传子 props

2、父传子 slot

3、父传子 不建议用 attrs

4、 子传父 ref

5、子传父 emit

6、povide/inject只能在setup的时候用。

7、利用vuex和pinia去实现数据的交互

1、实现代码App.vue


<script setup>import TestProps from './components/TestProps.vue';
import TestEmit from './components/TestEmit.vue';
import TestProvideInject from './components/TestProvideInject.vue';
import TestRef from './components/TestRef.vue';
import TestAttrs from './components/TestAttrs.vue';
import TestSlot from './components/TestSlot.vue';import { createApp, provide, reactive, ref } from 'vue';const mm = ref("父值 test");
const pmsg = "父值 test"
function pcallback()
{console.log("pcallback");
}function pEmitclicked(m)
{console.log("pEmitclicked " + m);
}function pclicked()
{console.log("pclicked ");provide("user","test1")}
//provide() can only be used inside setup().
provide("user","test")
provide("userObj",{"a":"b"})
provide("userFunc",()=>{return "aaa"})let testref = ref();
function prefClicked()
{console.log("title:", testref.value.title);console.log("msg:", testref.value.msg);testref.value.func();testref.value.title = "sssssss"; 
}
</script><template><div><p>父传子 props</p><p>子传父 emit</p><p> povide/inject只能在setup的时候用</p><p>子传父 ref</p><p>父传子 不建议用 attrs</p><p>父传子 slot</p></div><div><TestProps></TestProps><TestProps :message="pmsg"></TestProps><TestProps message="我是传值" :callback="pcallback"></TestProps></div><div><p>emit===========================</p><button @click="pEmitclicked">pEmitclicked</button><TestEmit @subemit="pEmitclicked"></TestEmit></div><div> <p>provide/inject===========================</p><button @click="pclicked">provide/inject</button><TestProvideInject></TestProvideInject></div><div> <p>Ref===========================</p><button @click="prefClicked">ref</button><TestRef ref="testref"></TestRef></div> <div>      <p>attrs===========================</p><TestAttrs msg="test" msg2="2222"></TestAttrs></div><div><p>slot===========================</p><TestSlot></TestSlot><TestSlot> {{ mm }}</TestSlot>   <TestSlot><template v-slot:header><h1>Here header title</h1></template></TestSlot></div> </template><style scoped></style>

2、TestProps.vue


<template><h3>props</h3><a>{{ msg }} : {{ message }}</a><button @click="callback_p">调用函数</button>
</template><script>
import { ref } from 'vue'
export default {props : {message : {type : String,required: true,default : "default message ",},obj : { type: Object,// 对象或数组默认值必须从一个工厂函数获取default() {return { message: 'hello' }}},callback : {type: Function,// 与对象或数组默认值不同,这不是一个工厂函数 —— 这是一个用作默认值的函数default() {console.log("default clicked");return 'Default function'}}},setup(props) //需要传值{const msg = ref("提示");function callback_p(){props.callback();}return {msg,callback_p};}
}
</script> <!-- <script setup>
import { ref } from "vue";
const msg = ref("提示");//需要自己定义props
const props = defineProps({message : {type : String,required: true,default : "default message ",},obj : {type : Object},aryobj : {type : Array,default : []},callback : {type : Function,default() {console.log("default clicked");return "function"}}
})function callback_p()
{props.callback();
}</script> -->

3、TestAttrs.vue

<template ><div>{{ msg }} + {{ attrs.msg2 }}</div>
</template><script>
import { ref, useAttrs } from "vue";
export default {inheritAttrs: true,setup(props, context){const msg = ref("msg1");const attrs = context.attrs;return {msg, attrs}},
}
</script> <!-- <script setup>
import { ref, useAttrs } from "vue";const msg = ref("msg1");
const attrs = useAttrs();console.log("attrs:",attrs);</script> -->

4、TestSlot.vue

<template ><div><slot>defaut slot</slot><slot name="header"></slot></div>
</template>

5、TestRef.vue

<template><h3>{{ title }}</h3>
</template><!-- 
<script>
import { ref } from "vue";  
export default {setup(){const title = ref("title");const msg = ref({title:"aaa"});function func(){console.log("func");}return {title, msg, func}}
}
</script> --><script setup>
import { ref } from "vue";const title = ref("title");
const msg = ref({title:"aaa"
})function func()
{console.log("func");
}defineExpose({title,msg,func
})</script>

6、TestEmit.vue

<template><h3>emit+++++</h3><div>{{ msg }}<button @click="clicked">子传父</button></div></template><!-- <script>
import { ref } from 'vue';
export default {emits : {subemit : function(str){console.log("subemit " + str);//msg.value = str;return true;}},methods : {clicked : function clicked(){console.log("clicked ");this.$emit("subemit", this.msg);}},setup(){const msg = ref("msg");//这里声明无效需要用methodsfunction clicked1(){console.log("kkk");this.$emit("subemit", this.msg.value);}return {msg,clicked1}}}
</script> --><script setup>
import { ref } from 'vue';
const msg = ref("msg");const emits = defineEmits({subemit : function(str){console.log("subemit " + str);return true;}
})function clicked()
{console.log("clicked ");emits("subemit", msg.value);
}</script>
<style></style>

7、TestProvideInject.vue

<template><div>inject provide test {{ puser }}</div><button @click="pb">test</button>
</template><!-- <script lang="ts">
import { ref } from 'vue'export default {setup() {const msg = ref("msgtest");return {msg}},methods : {pb : function(){console.log(this.msg);this.$emit("subemit", this.msg);}},emits : {subemit : function(str){console.log("subemit " + str);return true; //要有返回值,不然有warning}}}
</script> --><script setup>
import { inject, ref } from 'vue'const msg = ref("msgtest");const puser = inject("user");
const puserObj = inject("userObj");
const userFunc = inject("userFunc");console.log(puser, puserObj, userFunc())</script>

8、终极方法vuex和pinia

参考

Vue组件之间数据通信12种方式_vue组件间通信_小胖梅前端的博客-CSDN博客

vue组件间通信的六种方式(完整版)_vue的组件之间是如何交互的, 几种方式_学编程的ADD的博客-CSDN博客

http://www.yayakq.cn/news/194495/

相关文章:

  • 深圳品牌网站策划广州地图
  • 深圳企业做网站公司哪家好平台连接
  • 常用的做网站的工具都有哪些网站不兼容怎么办啊
  • 推广链接跳转医疗类网站还有做seo
  • 网站访客代码js建设网站需要准备哪些内容
  • 网站里的注册怎么做盐城手机网站制作
  • iis网站下载响应式网站404页面怎么做
  • 有了域名自己电脑怎么做网站wordpress自动采集手动写
  • 营销型网站首页模板企业网站设计话术
  • 做网站总结体会wordpress 自定义逻辑
  • cms做的网站胡源代码wordpress修改省略图
  • 响应式网站排名如何改号宝网站搭建
  • 做医药商城网站的公司交易所网站开发
  • 医疗网站女性专题网页设计模板本地服务器 wordpress
  • 韩都衣舍网站建设策划书微软网站设计
  • 怎样免费建公司网站建大网站首页
  • 辽宁省建设厅网站网站建设如何自学
  • 建网站需要什么东西简单的wordpress模板
  • 专业做h5网站货源网站
  • 烟台南山集团网站建设高端网站设计制作
  • 深圳网站建设交易中企动力邮箱手机登录设置
  • 网站手机版二维码怎么做如何给网站建设提意见
  • 沅江网站开发wordpress国产插件
  • 中国营销型网站有哪些网站优化企业排名
  • 网站设置主页在哪里中国搜索引擎网站排名
  • 安徽茶叶商城网站建设海外平台推广
  • seo01网站不限流量网站空间
  • 在QQ上做cpa网站说是恶意的晚上国网app
  • 佛山市住房和城乡建设部网站怎么做网站管理系统
  • js网站源码女生学电子商务后悔了