setup与prop和props联合使用法

news/2024/7/10 3:02:53 标签: vue
<!DOCTYPE html>
<div id = "app">
   
</div>

<script src="https://unpkg.com/vue@next"></script>
<script>
   const app = Vue.createApp({
       data() {
           return {
               title: 'Jave 无难事'
           }
       }
    });
       /* 定义一个根组件,数据的内容,数据内容是书名
       接下来应该是什么?
       setup吗?
       不是说在组件实例创建之前被调用吗,这已经建立了根组件啊!不符合了吗?*/

       app.component('postItem', {
           props: ['postTitle'],
           setup(props) {
               Vue.watchEffect(() => {
                   console.log(props.postTitle);
               })
           },
           template: '<h3> {{ postTitle }}</h3>'
       });
 
  app.mount('#app');

  
  
</script>
</html>

已经在console显示出date title来了
div里还什么也没有。
title是要在div里吗,script里没有

是这样吗?

<!DOCTYPE html>
<div id = "app">
   <postItem>title</postItem>
</div>

<script src="https://unpkg.com/vue@next"></script>
<script>
   const app = Vue.createApp({
       data() {
           return {
               title: 'Jave 无难事'
           }
       }
    });
       /* 定义一个根组件,数据的内容,数据内容是书名
       接下来应该是什么?
       setup吗?
       不是说在组件实例创建之前被调用吗,这已经建立了根组件啊!不符合了吗?*/

       app.component('postItem', {
           props: ['postTitle'],
           setup(props) {
               Vue.watchEffect(() => {
                   console.log(props.postTitle);
               })
           },
           template: '<h3> {{ postTitle }}</h3>'
       });
 
  app.mount('#app');

  
  
</script>
</html>

正确的

<!DOCTYPE html>
<div id = "app">
   <post-item :post-title="title"></post-item>
</div>

<script src="https://unpkg.com/vue@next"></script>
<script>
   const app = Vue.createApp({
       data() {
           return {
               title: 'Jave 无难事'
           }
       }
    });
       /* 定义一个根组件,数据的内容,数据内容是书名
       接下来应该是什么?
       setup吗?
       不是说在组件实例创建之前被调用吗,这已经建立了根组件啊!不符合了吗?*/

       app.component('postItem', {
           props: ['postTitle'],
           setup(props) {
               Vue.watchEffect(() => {
                   console.log(props.postTitle);
               })
           },
           template: '<h3> {{ postTitle }}</h3>'
       });
 
  app.mount('#app');

  /*居然不是,那应该是什么?
  :post-title="title",这句话是什么意思?*/
  
</script>
</html>

还不懂,还没有参透

<!DOCTYPE html>
<div id = "app">
   <post-item :post-title="title"></post-item>
</div>

<script src="https://unpkg.com/vue@next"></script>
<script>
   const app = Vue.createApp({
       data() {
           return {
               title: 'Jave 无难事'
           }
       }
    });
       /* 定义一个根组件,数据的内容,数据内容是书名
       接下来应该是什么?
       setup吗?
       不是说在组件实例创建之前被调用吗,这已经建立了根组件啊!不符合了吗?*/

       app.component('postItem', {
           props: ['postTitle'],
           setup(props) {
               Vue.watchEffect(() => {
                   console.log(props.postTitle);
               })
           },
           template: '<h3> {{ postTitle }}</h3>'
       });
 
  app.mount('#app');

  /*居然不是,那应该是什么?
  :post-title="title",这句话是什么意思?*/

  /*子组件绑定这个属性
  post-title是一个props属性吧
  根组件是data
  子组件是post-item,
  div里引用子组件,子组件里应用post-title,这个由根组件通过props传递给子组件的属性
  子组件的模板是h3
  所以最后渲染出来的结果是
  h3的Java无难事
  watchEffect又在这里管什么用
  是实现响应式功能吗
  为什么不用ref或reactive呢?不明白
  先看看console里有什么吧*/
  
</script>
</html>

再分析,疑惑

<!DOCTYPE html>
<div id = "app">
   <post-item :post-title="title"></post-item>
</div>

<script src="https://unpkg.com/vue@next"></script>
<script>
   const app = Vue.createApp({
       data() {
           return {
               title: 'Jave 无难事'
           }
       }
    });
       /* 定义一个根组件,数据的内容,数据内容是书名
       接下来应该是什么?
       setup吗?
       不是说在组件实例创建之前被调用吗,这已经建立了根组件啊!不符合了吗?*/

       app.component('postItem', {
           props: ['postTitle'],
           setup(props) {
               Vue.watchEffect(() => {
                   console.log(props.postTitle);
               })
           },
           template: '<h3> {{ postTitle }}</h3>'
       });
 
  app.mount('#app');

  /*居然不是,那应该是什么?
  :post-title="title",这句话是什么意思?*/

  /*子组件绑定这个属性
  post-title是一个props属性吧
  根组件是data
  子组件是post-item,
  div里引用子组件,子组件里应用post-title,这个由根组件通过props传递给子组件的属性
  子组件的模板是h3
  所以最后渲染出来的结果是
  h3的Java无难事
  watchEffect又在这里管什么用
  是实现响应式功能吗
  为什么不用ref或reactive呢?不明白
  先看看console里有什么吧*/

  /*
  经过观察console
  根组件,Root,是data,title,java无难事
  根组件下面有一个子组件,
  是PostItem
  点击以后,发现有一个,这个子组件有一个prop,不是prop,不知道如果是不是有多个postTitle,这里才会是复数
  看错了,这里不是prop,就是props,反正就是props,有理无理。
  props下是postTitle,
  postTitle对应的是Java无难事字符串,不是对象。
  跟之前的,根组件的title里的字符串一样一模一样的,title这里也不是对象。
  由此可见,根组件的内容数据,通过props,传递到了子组件。

  那么问题依然存在,watchEffect是干什么的?
  能不能用ref和reactive替换?
  
  */
  
</script>
</html>

http://www.niftyadmin.cn/n/957378.html

相关文章

算法学习(十六)——D3QN

D3QN以DQN为基础,加入double和dueling两种改进。收敛速度更快,收敛更加稳定。 从实际测试看,强化学习对初值比较敏感,所以如果一开始训练效果不好,可以重新开始训练,可能会有好效果。 demo: import torch import torch.nn as nn import torch.nn.functional as F impo…

不要随随便便等于一个对象,解构响应式,要用toRefs保留响应式,用vm.title/author可以在console和页面都修改

<!DOCTYPE html> <div id "app"><p>作者: {{ author }}</p><p>书名: {{ title }}</p> </div><script src"https://unpkg.com/vuenext"></script> <script>const { reactive, toRefs } Vue;…

gym中env的unwrapped

在看一些示例程序代码时&#xff0c;一般从gym中引用环境只需要用gym.make就可以了&#xff0c;比如 envgym.make(CartPole-v0) 但在很多程序中&#xff08;如莫烦pytorch的DQN程序&#xff09;&#xff0c;还有这样一句 env env.unwrapped 关于这个unwrapped的含义&#…

RuntimeError: view size is not compatible with input tensor‘s size and stride

在运行程序中&#xff1a; def forward(self, x):out self.cnn(x)out out.view(out.size()[0], -1)return self.fc(out) python报错&#xff1a; RuntimeError: view size is not compatible with input tensors size and stride (at least one dimension spans across two…

toRef与toRefs实现了同样的功能,表达方式有点,toRef一个个来,toRefs两个一起

<!DOCTYPE html> <div id "app"><p>作者: {{ author }}</p><p>书名: {{ title }}</p> </div><script src"https://unpkg.com/vuenext"></script> <script>const { reactive, toRef } Vue;c…

gym.error.DependencyNotInstalled: Found neither the ffmpeg nor avconv executables.

错误&#xff1a; gym.error.DependencyNotInstalled: Found neither the ffmpeg nor avconv executables. On OS X, you can install ffmpeg via brew install ffmpeg. On most Ubuntu variants, sudo apt-get install ffmpeg should do it. On Ubuntu 14.04, however, youll…

Gym Atari环境预处理Wrapper解读

前言 在深度强化学习的实验中&#xff0c;Atari游戏占了很大的地位。现在我们一般使用OpenAI开发的Gym包来进行与环境的交互。本文介绍在Atari游戏的一些常见预处理过程。 该文所涉及到的wrapper均来自OpenAI baselineshttps://github.com/openai/gym...一些常见Wrapper解读 …

算法学习(十七)——A2C和PPO

个人理解&#xff1a; ACadvantage A2C A2C重要性采样TD(n) PPO A2C&#xff1a; 所谓A2C就是在AC的基础上加了一个Advantage&#xff0c;公式有如下改进&#xff1a; 但是Q可以由V计算而来&#xff0c;因此转变位&#xff1a; 目的在于&#xff1a;给Q值增加一个基线&am…